استفاده از Where بین مدل‌های لاراول

با توجه به مواردی که ارائه دادید، ابتدا نیاز به تنظیم یک رابطه Eloquent بین مدل‌های User و UserSettings دارید. پس از برقراری این رابطه، می‌توانید بر اساس....

انتشار: , زمان مطالعه: 2 دقیقه
استفاده از Where در Eloquent بین مدل‌های لاراول
دسته بندی: برنامه نویسی تعداد بازدید: 168

استفاده از Where در Eloquent بین مدل‌های لاراول

فرض کنید می خواهیم تمامی کاربرانی که تنظیمات دریافت خبرنامه را در جدول UserSettings انجام داده اند را با استفاده از مدل User فراخوانی کنیم ، برای این کار  ابتدا نیاز به تنظیم یک رابطه Eloquent بین مدل‌های User و UserSettings دارید. پس از برقراری این رابطه، می‌توانید بر اساس ویژگی‌های مدل مرتبط پرس و جو کنید.

در اینجا مراحل را به شما نشان می‌دهم:

  1. تنظیم رابطه Eloquent

فرض می‌کنیم هر User یک UserSettings دارد:

در مدل User شما:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function settings()
    {
        return $this->hasOne(UserSettings::class);
    }
}

در مدل UserSettings شما:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class UserSettings extends Model
{
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}
  1. پرس و جو برای کاربران

حالا که رابطه‌های شما تنظیم شده‌اند، می‌توانید برای جلب کاربرانی که فیلد newsletters_notification آنها برابر با 1 است، پرس و جو کنید:

$usersWithNewsletterNotifications = User::whereHas('settings', function ($query) {
    $query->where('newsletters_notification', 1);
})->get();

دستور پرس و جوی فوق تمامی کاربرانی را که فیلد newsletters_notification آن‌ها در رکورد مرتبط UserSettings برابر با 1 است، باز می‌گرداند.


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)