В пакете Laravel, который я сделал, я хочу перенаправить пользователя на действие контроллера, для которого требуется параметр (в том же пакете).Как передать параметр в действие контроллера в пакете Laravel?
Контроллер:
public function postMatchItem(Request $request, $id)
{
$this->validate($request, [
'item_match' => 'required|numeric|exists:item,id',
]);
$spot_buy_item = SpotBuyItem::find($id);
$item = Item::find($request->input('item_match'));
$price = $item->getPrice();
$spot_buy_item_response = new SpotBuyItemResponse();
$spot_buy_item_response->spot_buy_item_id = $id;
$spot_buy_item_response->spot_buy_id = $spot_buy_item->spot_buy_id;
$spot_buy_item_response->item_id = $item->id;
$spot_buy_item_response->user_id = $spot_buy_item->user_id;
$spot_buy_item_response->spot_buy_price = $price;
$spot_buy_item_response->created_ts = Carbon::now();
$spot_buy_item_response->save();
return redirect()->action('Ariel\SpotBuy\Http\Controllers\Admin\[email protected]', [$id]);
}
Действие в перенаправлении тот же путь, который я использую в моей routes.php
файл, чтобы направить пользователя к этому действию контроллера
Маршрут:
Route::get('/part/{id}', 'Ariel\SpotBuy\Http\Controllers\Admin\[email protected]')->where('id', '[0-9]+');
I «Пробовал варианты этого пути без успеха, в том числе [email protected]
, как это предлагает документация (https://laravel.com/docs/5.1/responses#redirects)
Примечание: Я получил эту работу, назвав мой маршрут в routes.php
и используя return redirect()->route('route_name', [$id]);
, но я все еще хочу знать, как передать действие контроллера пакета функции ->action()
.
Try: 'Возвращение редирект () -> action ('Ariel \ SpotBuy \ Http \ Controllers \ Admin \ SpotBuyController @ getPart', ['id' => $ id]); ' – Laerte
Не повезло. Я получаю такое же сообщение об ошибке: 'production.ERROR: exception 'InvalidArgumentException' с сообщением« Action App \ Http \ Controllers \ Ariel \ SpotBuy \ Http \ Controllers \ Admin \ SpotBuyController @ getPart not defined.' –