【发布时间】:2018-06-03 03:55:30
【问题描述】:
我正在尝试在唯一验证规则中添加额外的 where 子句。但在此之前,我需要加入其他表。但我没有成功。
我有 2 张桌子:
团队
带有 id 和 name 字段
role_user_team
其中role_id、user_id和team_id是这三个键。
所以我需要检查 team.name 字段对于某个特定用户是否是唯一的。 我确实尝试过:
'name' => Rule::unique('teams')->where(function ($query){
//return $query->where('account_id', 1);
return $query->join('role_user', 'role_user.team_id', '=', 'teams.id')->where('role_user', Auth::user()->id);
});
我知道问题出在连接上,但我不知道如何解决。 谢谢!
【问题讨论】:
-
使用
Auth::id()而不是Auth::user()->id。对象Auth::user()不能存在。 -
我认为 where 子句中不允许加入...所以我需要一个新的验证规则来检查我想要的内容。 ¿对此有任何想法吗?
-
确实,似乎加入不起作用,尽管这在任何地方都没有记录。闭包获得一个标准的查询构建器对象,因此您希望加入正常工作。但 querybuilder 对象似乎在之后被编辑,破坏了连接。
标签: php laravel laravel-5.5 laravel-validation