gpt4 book ai didi

php - 在 Laravel 中自定义模型存储的验证规则

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:25 25 4
gpt4 key购买 nike

比方说,我在 Laravel 中有一个像这样的用户模型:

class User extends Eloquent implements UserInterface, RemindableInterface {

public static $rules = array(
'email' => 'required|email',
'password' => 'required|min:8|confirmed',
'password_confirmation' => 'required|min:8'
);

...

}

存储在模型中的规则将被重新用于登录和注册表单,但是当不需要密码确认时会出现问题(例如登录表单)。并且可能存在许多需要更改规则的情况。

那么,在 Laravel 中,有没有什么纯粹的方法可以针对不同的情况修改模型存储的验证规则呢?我是否必须重新组织我的规则存储方法?

谢谢!

最佳答案

您可以在需要时动态添加规则。

例如:

如果我是对的,您只需要在注册用户和更新密码时使用password_confirmation 规则。因此,在您的模型中,不要添加 password_confirmation 规则。

public static $rules = array(
'email' => 'required|email',
'password' => 'required|min:8|confirmed'

}

如何动态添加规则:

要注册用户,password_confirmation 字段是必需的。因此,从您的 Controller 中,您始终可以添加如下规则:

$rules = User::$rules;

$rules['password_confirmation'] = 'required|min:8';

有时您可能需要根据用户输入添加规则。

例如:

如果用户选择澳大利亚作为国家,他们还必须选择一个州。

$v = Validator::make($data, $rules ));
$v->sometimes('state', 'required', function($input)
{
return $input->country == 'Australia';
});

关于php - 在 Laravel 中自定义模型存储的验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20784873/

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