laravel表单验证唯一性使用 [请求类] 验证表单的方法,以及 [唯一验证] 的兼容写法

1. 控制器方法:

    public function store(UserRequest $request)  
    {
        return $this->form()->store();
    }

2.请求独立验证器类:

public function rules() {
    $id= request()->route('user');
    if(is_object($id))
        $id= $id->id;
    return [
//            'email'=> 'required|email|unique:users',                    //坏,本人修改失败
//            'email'=> 'required|email|unique:users,email,'. Auth::id(), //坏,后台修改失败
            'email'=> 'required|email|unique:users,email,'. $id,        //好!前后台都可以
    ];
}

Route::get('/store/{user}', 'YourController@yourMethod');

在这个例子中,{user}是一个占位符,它表示当路由被触发时,Laravel会从URL中获取名为user的参数。这个参数可以传递给路由方法(在上面的例子中是yourMethod)。

当你在视图中使用route('user')或者request()->route('user')时,Laravel会解析URL并返回对应参数的值。在上面的例子中,如果URL是/user/123,那么request()->route('user')将返回123

请注意,你的实际路由定义可能会有所不同,取决于你的项目需求和路由文件的内容。

然后再解释下

代码使用 is_object() 函数来检查 $id 是否是一个对象。这是因为在 PHP 中,除了基本类型(如字符串、整数、布尔值等)之外,其他类型都可以被视为对象。

如果 $id 是一个对象,那么它的值将是一个对象的实例,该对象可能具有属性和方法。在这种情况下,代码会继续执行并使用 $id 的属性或方法。在这种情况下,代码会尝试获取对象的 id 属性。

如果 $id 不是一个对象,那么代码将不会执行 $id= $id->id; 这行,而会直接使用原始的 $id 值。

这种检查对象的方法在处理从外部来源(如数据库、表单输入、外部API等)接收的数据时非常有用,因为它允许你以安全的方式处理可能以不同形式接收的数据。如果 $id 是一个对象,你可以访问其属性或方法以获取所需的数据;如果 $id 不是一个对象,你可以直接使用原始值而不会引发错误。           谢谢各位的参与,希望对你们有所帮助,写的不好,多多见谅。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值