جستجو با Eloquent Relationships

۸ فروردین ۱۳۹۷

طراحی سایت

در این مقاله جستجو در Eloquent laravel برای جدولهایی در دیتابیس که با هم رابطه دارند را به شما آموزش می دهیم.

مفهوم پایه

بگذارید بگوییم ما یک سیستم رزرو بلیط داریم. ما دو مدل اولیه، کاربر و مدل بلیط داریم. ما می خواهیم جستجو را فقط بر روی بلیط انجام دهیم، اما با نام کاربری که بلیط را خریداری کردیم. بنابراین سوال این است، چگونه می توانیم یک مجموعه داده های بلیط را با جستجوی نام کاربر بازگردانیم؟

تنظیمات اولیه برای ایجاد رابطه بین جداول

یک کاربر بلیط دارد، به عبارت دیگر، آن بلیط متعلق به یک کاربر است. بیایید رابطه بین مدل ها ایجاد کنیم.


public function user()
{
    return $this->belongsTo(User::class);
}

در حال حاضر ما می توانیم پرس و جو در مدل کاربر از طریق مدل بلیط را انجام دهیم.

کوئری بصورت مشتق شده

بگذارید بگوییم ما میخواهیم نتایج را در TicketsController خود فیلتر کنیم. ما می خواهیم نام کاربر را در مدل کاربری از طریق مدل بلیط جستجو کنیم. Laravel یک راه خوب برای جستجو، با whereHas و OrWhereHas فراهم می کند. با کمک این دو، ما می توانیم به راحتی آنچه را که می خواهیم انجام دهیم:


// TicketsController.php

public function index(Request $request)
{
    $tickets = Ticket::whereHas('user', function ($query) use ($request) {
        $query->where('name', 'like', "%{$request->name}%");
    });

    return view('tickets.index', compact('tickets));
}

 نویسنده:حمید شاه محمدی
 تعداد مشاهده خبر:(365)
 هر روز از مقاله های جدید طراحی سایت در کانال تلگرام ما با خبر شوید

 میانگین امتیازات:
 
  تعداد رای دهندگان: {{ count }}
نظرات:

{{ x }}
{{ alert }}

نویسنده:{{ com.name }}
{{ com.body }}
{{ com.created_at }}