۴۰۴ Not Found! قیمت ها به ۴۰۳ برگشت! به مدت محدود!
بزن بریم!سلام خدمت دوستان
من یک فرم دارم که میخوام از دوتا input متفاوت دو فایل (تصویر) مختلف اپلود کنم و در یک جدول دیتابیس ذخیره کنم.
فرض کنید در جدول categories من دو تا ستون به اسم category_image و category_bg دارم.دسته بندیم ایجاد و ویرایش نمیشه؟
AdminController :
<?php
namespace AppHttpControllersAdmin;
use CarbonCarbon;
use IlluminateHttpRequest;
use AppHttpControllersController;
class AdminController extends Controller
{
protected function uploadImages($file)
{
$year = Carbon::now()->year;
$filename = date('Y_m_d') . '_' . $file->getClientOriginalName();
$destination = "/uploads/images/{$year}/categories";
$destinationPath = public_path($destination);
$file->move($destinationPath , $filename);
return $destination . '/'. $filename;
}
}
CategoryController :
<?php
namespace AppHttpControllersAdmin;
use AppCategory;
use AppHttpRequestsCategoryRequest;
use IlluminateHttpRequest;
use AppHttpControllersController;
class CategoryController extends AdminController
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
$categories = Category::latest()->paginate(20);
return view('admin.categories.all' , compact('categories'));
}
/**
* Show the form for creating a new resource.
*
* @return IlluminateHttpResponse
*/
public function create()
{
return view('admin.categories.create');
}
/**
* Store a newly created resource in storage.
*
* @param CategoryRequest|Request $request
* @return IlluminateHttpResponse
*/
public function store(CategoryRequest $request)
{
$imageUrl = $this->uploadImage($request->file(['category_image' , 'category_bg']));
Category::create(array_merge($request->all() , ['category_image' => $imageUrl , 'category_bg ' => $imageUrl]));
return redirect(route('categories.index'));
}
/**
* Update the specified resource in storage.
*
* @param IlluminateHttpRequest $request
* @param AppCategory $category
* @return IlluminateHttpResponse
*/
public function update(Request $request, Category $category)
{
$imageUrl = $request->file(['category_image' , 'category_bg']);
$input = $request->all();
if ($imageUrl){
$input ['category_image'] = $this->uploadImage($request->file('category_image'));
$input ['category_bg'] = $this->uploadImage($request->file('category_bg'));
}else{
$input ['category_image'] = $category->category_image;
$input ['category_bg'] = $category->category_bg;
}
$category->update($input);
return redirect(route('categories.index'));
}
}
ارور :Call to a member function getClientOriginalName() on null
@alirezasafdari
سلام بله هم در create.blade.php و هم در edit.blade.php ایکریپت هست
البته الان تونستم store شو بنویسم اما update شو گیر کردم!!! مشکلم بیشتر کنترلر هست
CategoryController :
/**
* Store a newly created resource in storage.
*
* @param CategoryRequest|Request $request
* @return IlluminateHttpResponse
*/
public function store(CategoryRequest $request)
{
$imageUrl['category_image'] = $this->uploadImage($request->file('category_image'));
$imageUrl['category_bg'] = $this->uploadImage($request->file('category_bg'));
Category::create(array_merge($request->all() , ['category_image' => $imageUrl['category_image'] , 'category_bg ' => $imageUrl['category_bg']]));
return redirect(route('categories.index'));
}
در اپدیت هم دقیقا مثل store فایل ها رو میگیرید و تک تک آپلود میکنید مشکل در چیه
بجای چک کردن imageUrl چک کنید اگر فایلی ارسال شده بود آپلود انجام بشه اگر نشده بود مقدار های قبلی قرار ب گیره
دقیقا update شما میشه شبیه کدی که در جواب قبل این جواب وارد کردید
@hesammousavi
میشه بگید کدوم کد در جواب قبل؟
من الان اپدیتمو اینجوری نوشتم ولی کار نمیکنه!!منظورتون اینجوریه؟
/**
* Update the specified resource in storage.
*
* @param IlluminateHttpRequest $request
* @param AppCategory $category
* @return IlluminateHttpResponse
*/
public function update(Request $request, Category $category)
{
$imageUrl['category_image'] = $this->uploadImage($request->file('category_image'));
$imageUrl['category_bg'] = $this->uploadImage($request->file('category_bg'));
$input = $request->all();
if ($request->hasFile($imageUrl['category_image'])){
$input ['category_image'] = $this->uploadImage($request->file('category_image'));
}else{
$input ['category_image'] = $category->category_image;
}
if($request->hasFile($imageUrl['category_bg'])){
$input ['category_bg'] = $this->uploadImage($request->file('category_bg'));
}else{
$input ['category_bg'] = $category->category_bg;
}
$category->update($input);
return redirect(route('categories.index'));
}
قسمت اول یعنی
$imageUrl['category_image'] = $this->uploadImage($request->file('category_image'));
$imageUrl['category_bg'] = $this->uploadImage($request->file('category_bg'));
$input = $request->all();
نیاز نیست
و بقیه باید کار کنه
قبل اینکه آپدیت کنید با dd تست بگیرید ببینید چه مقادیری برگشت پیدا میکنه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟