我目前正在调查FormRequest对象,以使用它来执行传入数据的身份验证和验证。但是,在使用模型注入时,我无法使其工作。
routes.php文件:
Route::model('post', 'Post');
Route::model('comment', 'Comment');
Route::resource('post', 'PostController');
Route::resource('post.comments', 'CommentController');
PostRequest:
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模型中“注入”post_id
的正确值。
是否可以使用路线参数?如果是这样,怎么样?
答案 0 :(得分:0)
您不需要验证此类资源的ID - 您应该确保资源在控制器级别是正确的,并保留表单数据的验证规则。因此,控制器中的处理程序应如下所示:
public function store(StoreCommentRequest $request, Post $posts)
{
$post = $posts->findOrFail($request->post_id);
// Do some more stuff here
}