我将详细介绍。首先,我要在其上进行验证的表。
表名:groups_request;列名:idgroups_request(PK),iduser,idgroups,request_active,created_at,updated_at
目前,一个用户(iduser)可以按组(idgroups)发出很多请求。目标是,用户只能发出请求 如果该组尚未收到该用户的请求,则将其添加到该组。
示例:iduser = 1; idgroups = 100->不允许用户1向组100发出请求!
为此,我需要一个验证,该验证在iduser和idgroups两个字段上都唯一。
这是我已经解决的问题,但是没有用。但这不起作用。
$this->validate($request, [
'Gruppe' => 'unique:groups_request,idgroups,' .Auth::id(). ',iduser'
]);
答案 0 :(得分:0)
如果我对您的理解很好,那么我认为最好的方法是使组合在迁移中唯一,并用try
catch
将代码包装在控制器中,如果发生异常,则返回消息。如下所示:
迁移:
$table->unique(['iduser', 'idgroups']);
控制器:
public function store()
{
try {
$model = Model::create(['iduser' => 1, 'idgroups' => 1]);
} catch (\Exception $exception){
// If already there is record with **iduser = 1** and **idgroups = 1** the exception will be thrown and your code here will be executed
}
}