у меня есть отдельные базы данных;продукты и изображения.и у них есть собственный контроллер.Также я создал отношения между ними.Теперь я не знаю, как использовать разные контроллеры для одной и той же формы.Я хочу сохранить изображения и продукты в базу данных с помощью кнопки Добавить продукт.Примечание: я хочу использовать imagesController, а не модель Image.
Здесь мой productsController @ store:
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request, Product $product)
{
request()->validate([
'name' => 'required|string',
'description' => 'required|max:5000',
// 'image' => 'required|file|image|mimes:jpeg,png,gif,webp',
'price' => 'required|numeric',
'compare_price' => 'required|numeric',
'charge_tax' => 'boolean',
'sku' => 'required|unique:products',
'inventory' => 'required|numeric',
// 'barcode' => 'required', required??
'track_inventory' => 'required|boolean',
'width' => 'required|numeric',
'height' => 'required|numeric',
'depth' => 'required|numeric',
'weight' => 'required|numeric',
'weight_type' => 'required',
'extra_shipping_fee' => 'required|numeric',
]);
$product = Product::create([
'user_id' => auth()->id(),
'name' => request('name'),
'description' => request('description'),
// 'image_path' => request()->file('image')->store(auth()->id().'images', 'public'),
'price' => request('price'),
'compare_price' => request('compare_price'),
'charge_tax' => request('charge_tax'),
'sku' => request('sku'),
'inventory' => request('inventory'),
'track_inventory' => request('track_inventory'),
'width' => request('width'),
'height' => request('height'),
'depth' => request('depth'),
'weight' => request('weight'),
'weight_type' => request('weight_type'),
'extra_shipping_fee' => request('extra_shipping_fee'),
]);
if (request()->wantsJson()) {
return response($product, 201);
}
return redirect('/products')
->with('flash', 'Product has been stored!');
}
А вот мой контроллер Images:
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request, Product $product)
{
if ($request->hasFile('images')) {
foreach ($request->file('images') as $image) {
$product->images()->create([
'image_path' => $image->store(auth()->id().'images', 'public')
]);
}
}
}