Laravel 5.4 判断重复信息问题

// 这样去判断name是否在数据库 重复添加
$this->validate($request,[
                'name' => ‘unique:users',
]);
/*
 * 我在修改的时候,我需要去判断$request->name 是否为空,
 * 然后才进行判断是否重复添加,
 * 但是这样无法实现修改的时候 添加的name 是否是重复数据。
 * */
if (!empty($request->name))
{
           $this->validate($request,[
                'name' => ‘unique:users',
            ]);
}
// 对于这场景Laravel是否有更优雅的写法...
// PS:在修改的时候能保证不是重复数据

试试这样:

$this->validate($request,[
                'name' => ‘required|unique:users,name,'.Auth::id(),
]);
// 就是在添加的时候加上 Auth::id(),排除验证这一行
JellyBool

这样?

$this->validate($request,[
                'name' => ‘required|unique:users',
]);
假如_丶 回复 JellyBool

不是的 - -,是这个意思,在我添加 testvalidate 验证 unique:users,添加成功。
但是我在修改 test 的时候,提交 test 返回 test 是重复数据…(test在添加的时候不是重复数据,在修改的时候就是重复数据),恩,大概是这个意思…

假如_丶 回复 JellyBool

我在之前做的时候是做的一个判断,如果没有修改test则不去验证,修改test的时候就去验证,就是想问下有没有更好的写法…

JellyBool 回复 假如_丶

试试这样:

$this->validate($request,[
                'name' => ‘required|unique:users,name,'.Auth::id(),
]);
// 就是在添加的时候加上 Auth::id(),排除验证这一行
假如_丶 回复 JellyBool

厉害了…是这个样子…