سلام ضمن عرض تشکر بابت مشارکت در انجمن لطفا از عناوین مناسب تری برای موضوع و همچنین از تگ ها برای نشنانه گذاری سوال استفاده شود.
شما بهتر بود از کدهایی که نوشته اید عکس یا خود کدها رو در اختیار ما میگذاشتید تا بهتر راهنمایی کنید به هر حال من به عنوان مثال یک ویرایش و بروزرسانی فرضی انجام میدهم که مطمئنم قابل فهم خواهد بود.
دیتابیس من حاوی یک جدول به نام Products میباشد که نام محصول و قیمت در آن میباشد.
Products
|--------id
|--------name
|--------price
حال من برای برای هرگونه تغییر و قبت باید این مقادیر را در داخل مدل خود اضافه کنم.
protected $fillable = [
'name',
'price',
];
من بایدداخل web.php روت های مربوط به این دو را بسازم.
Route::group(['prefix' => '/admin/product', 'middleware' => 'auth'], function () {
Route::get('/edit/{product}', 'backend\ProductController@edit')->name('product.edit');
Route::put('/update/{product}', 'backend\Product@update')->name('product.update');
});
حال نوبت به ویرایش و بروزرسانی میرسد که من داخل کنترلر آن را مینویسم.
قسمت Edit چیز خاصی ندارد و ما باید یک ویو را بازگردانیم
public function edit(Product $product)
{
return view('backend.product.edit', compact('product'));
}
ما در اینجا مقدار داخل کلاژر که یک مدل جدید از دیتابیس هست را با دستور Compact به ویو ارسال میکنیم تا در آنجا بتوانیم مقادیر را به کاربر نشان بدهیم تا بفهمد چه مقداری دارد تا اگر نیاز بود تغییر دهد.
در Update ما با Save , Update میتوانیم عملیات را انجام دهیم.
public function update(Request $request, Product $product)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'price' => 'number'
]);
$product->update($request->all());
return view('index');
}
من در اینجا در تابع Update در ابتدا اعتبارسنجی را انجام دادم و گفتم که نام محصول من که همنام با جدول دیتابیس هست باید نوشته شود و اجباری است و نمیتواند بیشتر از 255 کاراکتر باشد و برای قیمت هم گفتم باید فقط عدد باشد. در ادامه متغیر product را با متد آپدیت به روزرسانی میکنیم که در اینجا من همه request ها رو گفتم . این بیسیک ترین راهی بود که گفتم البته باید داخل try باشد تا خطاهارا مدیریت کرد و......
موفق و سربلند باشید