Laravel 5.5 对具有不同列名的单独表的唯一验证规则

Posted

技术标签:

【中文标题】Laravel 5.5 对具有不同列名的单独表的唯一验证规则【英文标题】:Laravel 5.5 unique validation rule on seperate table with different column name 【发布时间】:2018-09-28 21:02:51 【问题描述】:

所以我有用户和公司。一个用户属于一家公司。

我想验证用户注册,以便他们用于注册的 business_name 字段在 companies 表中是唯一的,目标是不允许用户创建重复的公司。

这是我的注册函数:

public function register(Request $request)
    
        $validator = Validator::make($request->all(), [
            'first_name' => 'required',
            'last_name' => 'required',
            'business_name' => 'required|unique:companies',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:6',
        ]);


        if ($validator->fails()) 
            return response()->json(['error'=>$validator->messages()], 401);
        


我要比较的字段是 companies.name 以检查唯一性。

这可能吗?目前它正在尝试在companies 表中查找business_name

【问题讨论】:

【参考方案1】:

没关系,设法弄明白了。只需要一个额外的参数来指定列名:

'business_name' => 'required|unique:companies,name',

【讨论】:

以上是关于Laravel 5.5 对具有不同列名的单独表的唯一验证规则的主要内容,如果未能解决你的问题,请参考以下文章

来自具有相同列名的两个表的数据

R:如何根据具有不同列名的数据组合ggplots

Laravel 5.5 枢轴连接以获取具有主要 MySQL 结果的枢轴值

使用 pyspark/pandas 使用列名的模式匹配对具有不同列名的多个列值求和

如何在 Laravel 上获取具有自定义列名的特定列

Laravel 5.1:处理具有相同列名的连接