Ответ 1
Это очень просто, просто используйте метод route()
. Предполагая, что ваш параметр маршрута называется id
:
public function authorize(){
$id = $this->route('id');
}
Я новичок в Laravel 5, и я пытаюсь использовать новый запрос формы для проверки всех форм в своем приложении.
Теперь я застрял в точке, где мне нужно УДАЛИТЬ ресурс, и я создал DeleteResourceRequest только для использования метода авторизации.
Проблема в том, что мне нужно найти, какой идентификатор запрашивается в параметре route, но я не могу понять, как это сделать с помощью метода authorize.
Я могу использовать id в методе контроллера следующим образом:
public function destroy($id, DeletePivotRequest $request)
{
Resource::findOrFail($id);
}
Но как заставить это работать в методе авторизации запроса формы?
Это очень просто, просто используйте метод route()
. Предполагая, что ваш параметр маршрута называется id
:
public function authorize(){
$id = $this->route('id');
}
Вы можете получить доступ к параметру Route Value через экземпляр Illuminate\Http\Request
public function destroy($id, DeletePivotRequest $request)
{
if ($request->route('id'))
{
//
}
Resource::findOrFail($id);
}
Laravel 5.2, изнутри контроллера:
use Route;
...
Route::current()->getParameter('id');
Я нашел это полезным, если вы хотите использовать один и тот же метод контроллера для нескольких маршрутов с несколькими параметрами URL, и, возможно, все параметры не всегда присутствуют или могут отображаться в другом порядке...
то есть. getParameter('id')
даст вам правильный ответ, независимо от позиции {id}
в URL-адресе.