FormRequest с параметром маршрута (Laravel 5)

В настоящее время я изучаю объект FormRequest, чтобы использовать его для аутентификации и проверки входящих данных. Однако я не могу заставить его работать при использовании инъекции модели.

Маршруты.php:

Route::model('post', 'Post');
Route::model('comment', 'Comment');
Route::resource('post', 'PostController');
Route::resource('post.comments', 'CommentController');

Постзапрос:

class StoreCommentRequest extends FormRequest {

    public function authorize()
    {
        $post = $this->route('post');
        $owners = $report->users;

        return $owners->contains(Auth::id());
    }

    public function rules()
    {
        return [
            'post_id' => 'required|numeric|exists:posts,id'
        ];
    }

}

Всякий раз, когда комментарий публикуется, я получаю сообщение:

"The post id field is required"

Проблема в том, что я не могу "ввести" правильное значение для post_id из модели Post, привязанной к маршруту.

Можно ли использовать параметры маршрута? И если да, то как?


person Znk    schedule 16.02.2015    source источник
comment
внутри функции authorize() выполните dd(\Input::all()); и проверьте значение идентификатора погоды.   -  person manix    schedule 17.02.2015
comment
Параметр id не публикуется вместе с данными. Вместо этого я хотел бы получить параметр из маршрута.   -  person Znk    schedule 17.02.2015
comment
попробуйте это: $post = $this->route('post_id'); Кроме того, \Input::all() также должен иметь значения из маршрута   -  person manix    schedule 17.02.2015
comment
Является ли post_id параметром URL, определенным в routes.php, или это что-то, отправленное формой?   -  person edcs    schedule 02.06.2015


Ответы (1)


Вам не нужно проверять идентификатор такого ресурса — вы должны убедиться, что ресурс правильный на уровне контроллера, и сохранить правила проверки для данных формы. Итак, обработчик в вашем контроллере должен выглядеть так:

public function store(StoreCommentRequest $request, Post $posts)
{
    $post = $posts->findOrFail($request->post_id);

    // Do some more stuff here
}
person edcs    schedule 02.06.2015