راکت
NESYOU
NESYOU
توسط NESYOU مطرح شد
حل
6 پاسخ

مشکل sync در لاراول

سلام وقت تون بخیر من این کدرو نوشتم

$role->permissions()->sync($request->input('permission_id'));

ولی این ارور رو میده
Call to a member function sync() on null
از اهمون خطی که بالا نوشتم ارور میگیره

     ```
               <div class="form-group">
                            <label>دسترسی ها</label>
                            <select multiple class="form-control" name="permission_id[]">
                                @foreach ($permissions as $row)
                                    <option value="{{ $row->id } }">{{ $row->title } }</option>
                                @endforeach
                            </select>
                        </div>

ثبت پرسش جدید
سبحان دادخواه
سبحان دادخواه
تخصص :دانشجوی برنامه نویسی :)
@SobhanDadkhah5 سال پیشمطرح شد
0

@nesyourys
کد های قبل از این خط :

$role->permissions()->sync($request->input('permission_id'));

طبیعتا یا متغیر $role مشکل داره یا نوع تعریف رابطه permissions.
شما داخل کنترلرتون قبل از خط بالا با dd تست بگیرید متوجه منظور بنده میشید.

dd($role->permissions()); // add this & check the value
$role->permissions()->sync($request->input('permission_id'));

سبحان دادخواه
سبحان دادخواه
تخصص :دانشجوی برنامه نویسی :)
@SobhanDadkhah5 سال پیشمطرح شد
0

@nesyourys
سلام.
همونطور که از ارور مشخصه دارید تابع sync رو روی مقدار null صدا میزنید. در واقع تکه کد زیر داره مقدار Null برمیگردونه.

$role->permissions();

باید دیباگ کنید قطعه قطعه ببینید چرا مقدار نال بهتون برگشت داده میشه. یا اینکه اگر حل نشد کد های قبل از سینک رو هم از کنترلرتون قرار بدید تا بیشتر راهنمایی بگیرید.


NESYOU
NESYOU
تخصص :توسعه دهنده بک اند
@nesyourys5 سال پیشمطرح شد
0

باید کد های کدوم بخش رو دیباگ کنم؟@SobhanDadkhah


سبحان دادخواه
سبحان دادخواه
تخصص :دانشجوی برنامه نویسی :)
@SobhanDadkhah5 سال پیشمطرح شد
0

@nesyourys
کد های قبل از این خط :

$role->permissions()->sync($request->input('permission_id'));

طبیعتا یا متغیر $role مشکل داره یا نوع تعریف رابطه permissions.
شما داخل کنترلرتون قبل از خط بالا با dd تست بگیرید متوجه منظور بنده میشید.

dd($role->permissions()); // add this & check the value
$role->permissions()->sync($request->input('permission_id'));

NESYOU
NESYOU
تخصص :توسعه دهنده بک اند
@nesyourys5 سال پیشمطرح شد
1

چشم ممنونم از کمکتون@SobhanDadkhah


NESYOU
NESYOU
تخصص :توسعه دهنده بک اند
@nesyourys5 سال پیشمطرح شد
1

مشکل حل شد مشکلم این بود ک

public function roles()
{
    return $this->belongsToMany(Role::class);
}

return رو ننوشته بودم
مرسی از لطفتون @SobhanDadkhah


سبحان دادخواه
سبحان دادخواه
تخصص :دانشجوی برنامه نویسی :)
@SobhanDadkhah5 سال پیشمطرح شد
1

@nesyourys
خواهش میکنم. مشکلیه که زیاد پیش میاد واسه همه 😅
موفق باشید


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

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