是否有可能在一行中保存一对多的关系Laravel雄辩

时间:2017-08-14 07:47:23

标签: php database laravel laravel-5 laravel-eloquent

如何使用Laravel Eloquent将此问题答案关系船模型保存在一行中。如果这是不可能的,那么如何有效地保存这种关系(使用较少的代码行,纯粹使用Eloquent ORM。)

这是问题模型

class Question extends Model
{
    protected $fillable = ['name' ,'type'];

    public $timestamps = true;

    public function answers(){

        return $this->hasMany('App\Answer');
    }
}

这是答案模型

class Answer extends Model
{
    protected $fillable = ['answer'];

    public $timestamps = true;


    public function question(){

        return $this->belongsTo('App\Question');
    }
}  

2 个答案:

答案 0 :(得分:2)

在添加答案之前,您需要先提问。

<?php

// Create both question and answer in one go.
Question::create(['name' => 'Who is my father?'])
    ->answers()
    ->create(['answer' => 'Darth Vader']);

// If you already have a question and want to add a new answer.
$lukesQuestion->answers()->create(['answer' => 'Darth Vader']);

请参阅Eloquent relations上的文档。

答案 1 :(得分:0)

这是Eloquent ORM的工作方式。如果你想利用Eloquent,你无法避免这些关系函数。

如果您愿意,您不必定义这些方法,但是您不能将Eloquent的功能用于关系。

最后,这些语句所需的代码大小与语言有关,而与框架无关。