下面是我想做的:
我有 users
表和 user_profiles
我正在插入 name
, email
在 users
表和 phone
, address, .... etc
在 user_profiles
table。
我要匹配每一个值,以防止重复的用户,我找到了这个拉威尔方法 addOrUpdate()
但它只适用于一张table。但我必须匹配 user_profiles
也就是说 phone,address
.
下面是示例代码
$result = $customer->updateOrCreate([
'name' => $request->name,
'city_id' => $request->city_id,
'area_id' => $request->area_id,
'email' => $request->email
], [
'name' => $request->name,
'city_id' => $request->city_id,
'area_id' => $request->area_id,
'email' => $request->email
]);
有没有什么方法可以用拉维技术来实现这一点?
当做
4条答案
按热度按时间kzmpq1sx1#
如果要检查是否存在具有完全相同数据的用户,则不能使用
updateOrCreate()
. 请改为:xxslljrj2#
先做一个
relationship
与user
以及user_profiles
模型式-然后在你的
post controller
如你所愿match
要防止的每个值duplication
用户的-yiytaume3#
你可以用
updateOrCreate
为了你的两个模型的唯一性,我假设电子邮件应该是唯一的,所以首先updateOrCreate()
方法将检查参数是否存在用户$request->email
如果没有,则更新,然后创建并返回用户模型示例(在更新/创建两种情况下)第二
updateOrCreate()
在UserProfile
将检查是否存在user_id
然后更新或者添加新行,我想user_id
将是用户配置文件表中的外键mrphzbgm4#
我建议使用laravel的validator facade。https://laravel.com/docs/5.4/validation#manually-正在创建验证程序
这将检查以确保
users
以及users_profile
表是唯一的。