laravel - 两列的组合 Laravel Validation Unique
问题描述
我会更详细地介绍。首先是我要进行验证的表。
表名: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'
]);
解决方案
如果我理解你,那么,我认为最好的方法是在迁移中使组合唯一,并将你的代码包装在控制器中,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
}
}
推荐阅读
- mariadb - 太长的更改/创建表 InnoDB
- php - PHP模块和PHP扩展有什么区别?
- asynchronous - 是否有“简单等待”的异步等待方法
- powershell - Powershell Split 功能在 VSTS 发布管道中不起作用
- hiveql - 何时在 hive QL 中使用 sort By 子句
- angular - npm 在安装 `angular-in-memory-web-api` 时显示错误
- python - 如何在标签上绘制图像
- image - 如何在 MATLAB 中将图像连接到一个矩阵中?
- random - 机器人框架:下拉的随机选择
- sugarcrm - 为suitecrm中的重复值添加验证