laravel - 如何创建具有关系的 Eloquent 模型?

标签 laravel eloquent laravel-5

如何创建具有关系的 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/

相关文章:

laravel - 选择表中的最后一行

php - 您将如何在 Controller 中处理多字段高级搜索?

php - Eloquent DB::Post->where()->update() 始终返回 1,无论进行任何更改

laravel - mkdir() : No such file or directory - laravel

php - 返回按日期排序的数据

php - 如何使用 AJAX 和 Recaptcha 发送表单? [拉维尔]

php - 取消Axios请求时如何在Laravel中停止php脚本?

php - 如何在 Laravel 4 中批量更新

php - Laravel Eloquent 操作集合

Laravel 5 - 使用 'old' 预填充表单