Просто добавьте что-то примечательное здесь.
myQueue.hpp:
template <class T>
class QueueA {
int size;
...
public:
template <class T> T dequeue() {
// implementation here
}
bool isEmpty();
...
}
myQueue можно определить методы шаблонного класса, которые просто прекрасны в файле реализации. cpp:
// implementation of regular methods goes like this:
template <class T> bool QueueA<T>::isEmpty() {
return this->size == 0;
}
main()
{
QueueA<char> Q;
...
}
Проблема не в отсутствии изображения в объекте запроса, отправляемом через форму, а во втором параметре, который требуется для метода category.store.
Даже если вы сейчас отправите изображение в форме со скрытым полем, вам все равно придется передавать его в качестве параметра каждый раз, когда вы вызываете category.store.
Ваш метод хранилища определен как
store(Request $request, $image)
Итак, когда вы вызываете этот метод, даже если вы только получаете URL маршрута с маршрутом ('category.store'), вы действительно нужно отправить параметр изображения в этом вызове. Пример:
route('category.store', ['image' => 'image id here']);
То же самое относится к определению маршрута в вашем файле веб-маршрутов. Вы используете маршрут ресурса, но laravel не ожидает второго параметра для метода store в ресурсе по умолчанию, поэтому вам придется его изменить.
/*
adds exception to the resource so it will not handle the store method
*/
Route::resource('admin/category', 'Admin\CategoryController')->except(['store']);
//adds a custom route that supports the $image parameter.
Route::post('admin/category/{image}', 'Admin\CategoryController@store')
Теперь, если вы планируете отправить изображение через объект запроса, он вам не нужен в качестве второго параметра, поэтому единственное, что вам нужно будет изменить, - это сделать вашу категорию . Store метод, как это.
public function store(Request $request)
Если там доступен запрос $, тогда нет необходимости передавать дополнительную переменную $ image. Вы пытались
dd($request)
или print_r($request->toArray()); exit;
посмотреть, что находится в вашем запросе!
Для чего у вас есть параметр $ image? Это не указано в вашем axios.post.
public function store(Request $request)
{
$category = new Category();
$input = $this->safeInput($request);
$category->fill($input);
dd($this->postImage($request));
$slug = $category->slug($category->title);
$category->slug = $slug;
if($request->has('active'))
{
$category->active = 1;
}else{
$category->active = 0;
}
$category_order = $category->order_number();
$category->order = $category_order;
$category->save();
}
public function postImage($request)
{
if($request->hasFile('image'))
{
$names = [];
foreach($request->file('image') as $image)
{
$destinationPath = 'product_images/category/';
$filename = $image->getClientOriginalName();
$image->move($destinationPath, $filename);
array_push($names, $filename);
}
$image = json_encode($names);
return $image;
}
}
В вашем create.blade вы используете 'formUrl' => route ('category.store'), этот маршрут вызывает метод "store", верно? Если это так, ему также необходимо передать параметр $ image. Было бы легче определить проблему, если бы мы могли также найти ваш файл веб-маршрутов.
Если route ('category.store') вызывает метод store, у вас есть несколько вариантов.
1 - Если вам не нужен параметр $ image для метода store, вы можете просто удалить его.
2 - Если вам нужно в некоторых случаях, просто сделайте параметр необязательным и проверьте, получен ли он, прежде чем обрабатывать его. Пример: store (Request $ request, $ image = null)
3 - Если этот параметр действительно необходим, вам придется передавать его каждый раз, даже при вызове маршрутов. Пример: маршрут ('category.store', ['image' => $ что-то]). Глядя на ваш код в данный момент в create.blade, у вас нет контента для передачи, поэтому я не думаю, что это вариант.