محمد میرزاخانی
3 سال پیش توسط محمد میرزاخانی مطرح شد
1 پاسخ

مشکل در update کردن پست ها

سلام دوستان وقت بخیر
من بین مدل post و user خودم ارتباط یک به چند دارم.وقتی که میخام پستی را برای کاربر خودم update کنم به ارور زیر می‌خورم

Method Illuminate\Database\Eloquent\Collection::whereId does not exist.

این از روتم

Route::get('create', function ()
{
$user = User::find(3);
$user ->posts->whereId(3)->update(['name' => 'پست فرهنگی','body' => 'This is a farhangiPost']);
});

مشکل از کجاست؟؟


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

سلام

//بجای:
$user ->posts->whereId(3)->update(['name' => 'پست فرهنگی','body' => 'This is a farhangiPost']);
// از این استفاده کنید:
$user->posts()->whereId(3)->update(['name' => 'پست فرهنگی','body' => 'This is a farhangiPost']);

تفاوتشون هم اینه که posts کوئری رو اجرا می‌کنه و نتیجه رو در قالب collection به شما بر میگردونه. و روی این کالکشن نمی‌تونید whereId رو اجرا کنید. چون این متد مخصوص query builder هست.
اما اگر یک پرانتز باز و بسته جلوی posts بذارید بجای کالکشن یک Relation بر میگردونه که میتونید بهش فاکتورهای دیگه اضافه کنید و کوئری تون رو تکمیل کنید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام