如何创建具有关系的 Eloquent 模型?
我有:
人员表
id
firstname
lastname
员工表
id
person_id
position
我想做这样的事情:
Employee::create([
'firstname' => 'Jack',
'lastname' => 'London',
'position' => 'writer'
])
我知道,可以创建两个模型,然后将它们关联起来。但也许有办法让它变得更漂亮吗?
最佳答案
首先,您必须在 Person 模型中创建关系
class Person extends Model
{
protected $fillable = ['firstname', 'lastname'];
public function employee()
{
return $this->hasOne('App\Employee');
}
}
之后在您的 Controller 中您可以执行以下操作:
$person = Person::create($personData);
$person->employee()->create($employeeData);
如@Alexey Mezenin提到你可以使用:
$person = Person::create(request()->all());
$person->employee()->create(request()->all());
反之亦然:
class Employee extends Model
{
protected $fillable = ['position'];
public function person()
{
return $this->belongsTo('App\Person');
}
}
关于laravel - 如何创建具有关系的 Eloquent 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41509900/