gpt4 book ai didi

php - Laravel 验证 : exists with additional column condition - custom validation rule

转载 作者:行者123 更新时间:2023-12-02 21:50:49 29 4
gpt4 key购买 nike

在 Laravel 中指定存在验证规则时,是否可以引用另一个字段?我希望能够说输入 a 必须存在于表 a 中,输入 b 必须存在于表 b 中,并且表 b 中列 x 的值必须等于输入 a。

通过示例进行最佳解释:

public $rules = array(
'game_id' => 'required|exists:games,id',
'team1_id' => 'required|exists:teams,id,game_id,<game_id input value here>',
'team2_id' => 'required|exists:teams,id,game_id,<game_id input value here>'
);

因此,通过我的验证规则,我希望能够确保:

  • game_id存在于 games 内表( id 字段)
  • team1_id存在于 teams 内表(id 字段)和 game_id列(在 teams 表中)必须等于 game_id 的值输入。
  • 如上 team2_id

所以,如果在我的表单中,我输入 1对于 game_id ,我希望能够确保球队表内的记录均为 team1_idteam2_id值为 1对于 game_id .

我希望这是有道理的。

谢谢

最佳答案

从 Laravel 5.3+ 开始,您可以将自定义 where 子句添加到 exists and unique rules .

这是我的场景:我有一个电子邮件验证表,我想确保通过的机器代码和激活代码存在于同一行。

请务必使用 Illuminate\Validation\Rule;

$activationCode = $request->activation_code;                                   

$rules = [
'mc' => [
'required',
Rule::exists('email_verifications', 'machineCode')
->where('activationCode', $activationCode),
],
'activation_code' => 'required|integer|min:5',
'operating_system' => 'required|alpha_num|max:45'
];

exists 方法中的第一个参数是表,第二个参数是我用于“mc”字段的自定义列名称。我传递了第二列,我想检查 where 子句。

这非常方便,因为现在我不再需要自定义验证规则。

关于php - Laravel 验证 : exists with additional column condition - custom validation rule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121417/

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