NESYOU
4 سال پیش توسط 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>

ثبت پرسش جدید
سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 4 سال پیش مطرح شد
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'));

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

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

$role->permissions();

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


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

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


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 4 سال پیش مطرح شد
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
تخصص : توسعه دهنده بک اند
@nesyourys 4 سال پیش مطرح شد
1

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


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

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

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

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


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

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


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

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