استفاده از 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 است، باز میگرداند.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)