使用Laravel中的belongsTo关系插入/创建数据

时间:2018-12-01 17:13:22

标签: laravel laravel-5 eloquent eloquent--relationship

电话属于用户。现在,我如何同时通过belongsTo Relationship插入电话和用户数据,并自动在电话表中获取user_id外键。在这里,我尝试使用此代码,但不起作用。

$phoneData = $request->get('phone');
$userData = $request->get('name');
$phone->user()->create($userData);
$phone->create($phoneData);

Here is in form input field

2 个答案:

答案 0 :(得分:0)

类似这样的东西:

$userData  = $request->get('name');
$phoneData = $request->get('phone');

$user = User::create($userData);
$user->phones()->save(new Phone($phoneData));

当然,您还需要在User模型上定义关系:

// \App\User.php
public function phones()
{
    return $this->hasMany(\App\Phone::class);
}

答案 1 :(得分:0)

您无法在没有用户的情况下创建电话,因此不建议这样做,因为您必须在数据库中拥有的外键约束不会让您..

$userData  = $request->get('name');
$phoneData = $request->get('phone');

$phone = new Phone();
$phone->user()->associate(User::create($userData));
$phone->save();

也许您正在寻找类似的东西...

用于更新。

$phone = isset($phoneData['id']) 
   ? Phone::where('id', $phoneData['id'])->first() : new Phone(); 
$phone->user()->associate(User::firstOrCreate(
  ['email' =>$userData['email']], .... extra data from user));
$phone->save();