من یه جدول دارم به نام services
یا همین خدمات، حالا این جدول فیلدهای زیر را دارد
ودر مدیریت صفحه خدمات را ایجاد کردم برای مشاهده ی خدمات و ایجاد خدمات و ویرایش خدمات و حذف خدمات.
من فقط ویرایش و آپدیت تصویر مشکل دارم. یه مشکل عجیبی که من دارم اینه که وقتی در جدول services
(دیتابیس) فیلد image
را به ali
تغییر میدهم هیچ اتفاقی که باید بیفته، نمی افته یا به قول معروف هیچ خطایی نمیده.
web.php
Route::resource('services', 'ServiceController');
ServiceController.php
public function edit(Service $service)
{
return view('Admin.services.edit', compact('service'));
}
public function update(Request $request, Service $service)
{
$service->title = $request->title;
$service->body = $request->body;
if($request->has('image')) {
$image = $request->file('image');
$filename = $image->getClientOriginalName();
$image->move(public_path('images/services'), $filename);
$service->image = $request->file('image')->getClientOriginalName();
}
$service->update();
return redirect()->route('services.index');
}
edit.blade.php
<form class="form-horizontal" action="{{ route('services.update', $service->id) }}" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
{{ method_field('PATCH') }}
@include('Admin.layouts.errors')
<div class="form-group">
<label for="title">عنوان</label>
<input type="text" class="form-control" id="title" name="title" placeholder="عنوان" value="{{ $service->title ? : old('title') }}">
</div>
<div class="form-group">
<label for="body">متن</label>
<textarea class="form-control" rows="۱۰" id="body" name="body" placeholder="متن">{{ $service->body ? : old('body') }}</textarea>
</div>
<div class="form-group">
<label for="images">تصویر</label>
<div class="custom-file">
<input type="file" class="custom-file-input" id="images" name="images">
<label class="custom-file-label" for="images">تصویر محصول</label>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">ذخیره</button>
</div>
</form>
من حتی توی کنترلر متد update کد زیر را نوشتم هیچ اتفاقی نیفتاد.
$service->save();
حتی اگر در متد update
این دستور را نوشته باشم dd($request->image)
، کلمه null
را نشان میدهد.
سلام
@oxbir
توی فرمتون اسم Inputi که دارید عکس میگیرید
images هست
نه
image !
( شما توی کنترلر و متدتون از image خروجی گرفتید که Null میده)
مورد دوم اینکه شما سعی کنید برای استفاده از متد آپدیت
همیشه مقادیری که میخوایید آپدیت شه رو توی یه آرایه بریزید
برای مثال میگم نمونه زیر
ولیدیشن هم کنید
// برای مثال این نمونه رو ببینید
$this->validate($request, [
'file_title' => 'required',
'fileItem' => 'required'
], [
'file_title.required' => 'اسم فایل را وارد نمایید',
'fileItem.required' => 'اسم فایل را وارد نمایید',
'fileItem.mimes' => 'پسوند مجاز نیست',
'fileItem.image' => 'نوع فایل مجاز نیست',
'fileItem.max' => 'حجم فایل مجاز نیست',
]);
$file_data = [
'file_title' => $request->input('file_title'),
'file_descryption' => $request->input('file_descryption'),
'file_type' => $request->file('fileItem')->getMimeType(),
'file_size' => $request->file('fileItem')->getSize(),
];
//بعد برای آپدیت
$service->update($file_data);
اینطوری عمل کنید!
بهتر هست
موفق باشید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟