Подтвердить что ты не робот

Как использовать параметр запроса запроса в запросе формы Laravel 5?

Я новичок в Laravel 5, и я пытаюсь использовать новый запрос формы для проверки всех форм в своем приложении.

Теперь я застрял в точке, где мне нужно УДАЛИТЬ ресурс, и я создал DeleteResourceRequest только для использования метода авторизации.

Проблема в том, что мне нужно найти, какой идентификатор запрашивается в параметре route, но я не могу понять, как это сделать с помощью метода authorize.

Я могу использовать id в методе контроллера следующим образом:

public function destroy($id, DeletePivotRequest $request)
{
    Resource::findOrFail($id);
}

Но как заставить это работать в методе авторизации запроса формы?

4b9b3361

Ответ 1

Это очень просто, просто используйте метод route(). Предполагая, что ваш параметр маршрута называется id:

public function authorize(){
    $id = $this->route('id');
}

Ответ 2

Вы можете получить доступ к параметру Route Value через экземпляр Illuminate\Http\Request

public function destroy($id, DeletePivotRequest $request)
{
    if ($request->route('id'))
    {
        //
    }

    Resource::findOrFail($id);
}

Ответ 3

Laravel 5.2, изнутри контроллера:

use Route;

...

Route::current()->getParameter('id');

Я нашел это полезным, если вы хотите использовать один и тот же метод контроллера для нескольких маршрутов с несколькими параметрами URL, и, возможно, все параметры не всегда присутствуют или могут отображаться в другом порядке...

то есть. getParameter('id') даст вам правильный ответ, независимо от позиции {id} в URL-адресе.

См. Laravel Docs: Доступ к текущему маршруту