سلام دوستان
من یه متدی دارم که شماره هایی که مال مشتری هست رو پاک میکنه
یعنی بین مشتری و شماره مبایل ها رابطه یک به چند زدم
بار اول که روی حذف میزنم میگه شماره موبایل با موفقیت حذف شد
ولی بعد رفرش صفحه هنوز شماره موبایل هستش
توی دیتابیس هم چک میکم ولی باز هستش
وقتی بار دوم روی حذف شماره موبایل میزنم این ارور رو میده Call to a member function delete() on null
این هم متدی که دارم
public function removeMobileNumber($mobile_number_id)
{
MobileNumber::find($mobile_number_id)->delete();
return redirect('/admin-panel/customers/mobile-numbers/' . $mobile_number_id . '')->with('remove-mobile-number', 'شماره موبایل با موفقیت حذف شد!');
}
روت هارو هم درست دادم ولی باز حذف نمیکنه
ممنون میشم کمکم کنید
@m.reza6920 با سلام
توجه کنید که شما در نظر دارید یک گزینه ای غیر از id هر سطر که احتمالا کلید خارجی هست رو جستجو کنید و همه ی موارد پیدا شده رو حذف کنید اما با کدی که شما نوشتین داره id رو پیدا میکنه و حذف میکنه یعنی سطر هایی که شما نمیخواین حذف بشه داره به اشتباه حذف میشه!!
نکته ای که هست دقت کنید محیط phpmyadmin داره با استایل و رنگ متفاوت این مقادیر رو نشون میده. معمولا وقتی آبی رنگ نشون میده اطلاعات رو یعنی یک کلید خارجی دارید. فیلد id منحصر به فرد هر سطر که خود دیتابیس اضافه میکنه مشکی رنگ هست!
حدس میزنم شما میخواین تمامی شماره همراه های یک کاربر خاص رو حذف کنید! یک راه این هست که از طریق کاربر و ریلیشنی که بین کاربر و شماره ها ایجاد کردین حذف انجام بدین. یک راه این هست که هر شماره موبایل رو با آیدی منحصر به فرد خودش حذف کنید که در این مثال شما در عکس مقادیر مشکی رنگ میشن آیدی...
درواقع اون 2 آیدی کاربر x هست که دارید از طریق پارامتر url ارسال میکنید، باید همچین چیزی داشته باشید:
public function removeMobileNumbers($userID)
{
MobileNumber::where('user_id',$userID)->get(); // کالکشن تمامی شماره های یوزر مربوطه
// حذف شماره موبایل ها ...
}
امیدوارم متوجه منظورم شده باشید. 🤞
سلام
مشکل از $mobilenumberid هست احتمالا ، یک دور dd بگیرید ازش ببینید چی برمیگردونه و یا اصلا همچین آیدی برای شماره موبایل هست یا خیر
در ضمن به نظرم در این مورد بهتر هست از Route Model Binding استفاده کنید یا از تابعی که آقای مولایی فرمودند استفاده کنید
سلام شماره کامل حذف شده و الان برای شما شماره رو پیدا نمی کنه توصیه من استفاده از متد findOrFail هست که اگر پیدا نشد 404 بر می گردونه مثال:
MobileNumber::findOrFail($mobile_number_id)->delete();
@websaz برای مثال من روی حذف سه تا شماره موبایلی که ایدی 2 داره میزنم و not found میده یعنی حذف شده
ولی توی database هنوز سه تا شماره مبایل ایدی 2 هست
@m.reza6920 با سلام
توجه کنید که شما در نظر دارید یک گزینه ای غیر از id هر سطر که احتمالا کلید خارجی هست رو جستجو کنید و همه ی موارد پیدا شده رو حذف کنید اما با کدی که شما نوشتین داره id رو پیدا میکنه و حذف میکنه یعنی سطر هایی که شما نمیخواین حذف بشه داره به اشتباه حذف میشه!!
نکته ای که هست دقت کنید محیط phpmyadmin داره با استایل و رنگ متفاوت این مقادیر رو نشون میده. معمولا وقتی آبی رنگ نشون میده اطلاعات رو یعنی یک کلید خارجی دارید. فیلد id منحصر به فرد هر سطر که خود دیتابیس اضافه میکنه مشکی رنگ هست!
حدس میزنم شما میخواین تمامی شماره همراه های یک کاربر خاص رو حذف کنید! یک راه این هست که از طریق کاربر و ریلیشنی که بین کاربر و شماره ها ایجاد کردین حذف انجام بدین. یک راه این هست که هر شماره موبایل رو با آیدی منحصر به فرد خودش حذف کنید که در این مثال شما در عکس مقادیر مشکی رنگ میشن آیدی...
درواقع اون 2 آیدی کاربر x هست که دارید از طریق پارامتر url ارسال میکنید، باید همچین چیزی داشته باشید:
public function removeMobileNumbers($userID)
{
MobileNumber::where('user_id',$userID)->get(); // کالکشن تمامی شماره های یوزر مربوطه
// حذف شماره موبایل ها ...
}
امیدوارم متوجه منظورم شده باشید. 🤞
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟