استفاده از Where بین مدلهای لاراول
با توجه به مواردی که ارائه دادید، ابتدا نیاز به تنظیم یک رابطه Eloquent بین مدلهای User و UserSettings دارید. پس از برقراری این رابطه، میتوانید بر اساس....
استفاده از Where در Eloquent بین مدلهای لاراول
فرض کنید می خواهیم تمامی کاربرانی که تنظیمات دریافت خبرنامه را در جدول UserSettings
انجام داده اند را با استفاده از مدل User
فراخوانی کنیم ، برای این کار ابتدا نیاز به تنظیم یک رابطه Eloquent بین مدلهای User
و UserSettings
دارید. پس از برقراری این رابطه، میتوانید بر اساس ویژگیهای مدل مرتبط پرس و جو کنید.
در اینجا مراحل را به شما نشان میدهم:
- تنظیم رابطه 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);
}
}
- پرس و جو برای کاربران
حالا که رابطههای شما تنظیم شدهاند، میتوانید برای جلب کاربرانی که فیلد newsletters_notification
آنها برابر با 1
است، پرس و جو کنید:
$usersWithNewsletterNotifications = User::whereHas('settings', function ($query) {
$query->where('newsletters_notification', 1);
})->get();
دستور پرس و جوی فوق تمامی کاربرانی را که فیلد newsletters_notification
آنها در رکورد مرتبط UserSettings
برابر با 1
است، باز میگرداند.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)