@Sven0188 If you have resourceful controllers, then you can just have a controller for uploading an item’s images and redirect to that:
// Items
Route::post('items', [
'uses' => 'ItemController@store',
'as' => 'item.store',
]);
// Item Images
Route::get('items/{item}/images', [
'uses' => 'ItemImageController@index',
'as' => 'item.image.index',
]);
Route::get('items/{item}/images/create', [
'uses' => 'ItemImageController@create',
'as' => 'item.image.create',
]);
Route::post('items/{item}/images', [
'uses' => 'ItemImageController@store',
'as' => 'item.image.store',
]);
class ItemController extends Controller
{
public function store(CreateItemRequest $request)
{
$item = Item::create($request->all());
return redirect()
->route('item.images.create', $item)
->withSuccess('Item created. Now add images.');
}
}
class ItemImageController extends Controller
{
public function index(Item $item)
{
$item->load('images');
return view('item.image.index', compact('item'));
}
public function create(Item $item)
{
return view('item.image.create', compact('item'));
}
public function store(UploadImageRequest $request, Item $item)
{
$path = $request->image->store();
$item->images()->create([
'path' => $path,
]);
return redirect()
->route('item.image.index', $item)
->withSuccess('Item image uploaded successfully.');
}
}