Php Laravel验证规则仅适用于属于选定相关模型的ID
下面是数据库表的示例 员额表:Php Laravel验证规则仅适用于属于选定相关模型的ID,php,laravel,validation,belongs-to,validationrules,Php,Laravel,Validation,Belongs To,Validationrules,下面是数据库表的示例 员额表: id name 1 A 2 B 意见表: id post_id text 1 1 aaaaaaa 2 1 AAAAAAAAAAA 3 2 bbbbbbbbb 4 2 BBBBBBBBBBBB 5 2
id name
1 A
2 B
意见表:
id post_id text
1 1 aaaaaaa
2 1 AAAAAAAAAAA
3 2 bbbbbbbbb
4 2 BBBBBBBBBBBB
5 2 b5b5b5b5b
下面是我当前的验证规则
[
'post_id' => 'required|exists:posts,id',
'comment_id => 'required|exists:comments,id',
]
使用上述验证规则,它验证posts
表的id
列中是否存在post\u id
。注释id与相同
但在我的例子中,如果选择post id=1
,它应该验证comment\u id
是1
还是2
,因为只有这两条注释属于post id=1
同样,如果选择post id=2
,则应验证所选的注释id
是否属于post id=2
否则,即使所选的comment\u id
确实存在于comments
表的id
列中,验证也会失败
如何在Laravel 5或6中进行此类验证 嗨,这是你可以做到的方法。我相信您正在使用Request类
此代码段可以与请求类一起使用,也可以不使用请求类
[
'post_id' => 'required|exists:posts,id',
'comment_id' => [
'required',
Rule::exists('comments')->where(function($query){
$query->where('post_id', request()->post_id)
->where('id', request()->comment_id);
}),
]
有关更多信息,您可以查看文档是否使用验证请求?
'comment_id' => [
'required',
Rule::exists('comments')->where(function ($query) use($post_id) {
$query->where('post_id', $post_id);
}),
],