gpt4 book ai didi

routing - 带有路由参数的 FormRequest (Laravel 5)

转载 作者:行者123 更新时间:2023-12-02 04:50:51 26 4
gpt4 key购买 nike

我目前正在研究 FormRequest 对象,以使用它对传入数据执行身份验证和验证。但是,在使用模型注入(inject)时我无法让它工作。

路由.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"

问题是我似乎无法从绑定(bind)到路由的 Post 模型中“注入(inject)”post_id 的正确值。

是否可以使用路由参数?如果是这样,怎么做到的?

最佳答案

您不需要像那样验证资源的 ID - 您应该确保资源在 Controller 级别是正确的,并保持表单数据的验证规则。因此,您的 Controller 中的处理程序应如下所示:

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

// Do some more stuff here
}

关于routing - 带有路由参数的 FormRequest (Laravel 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com