如何使用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');
}
}
答案 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的功能用于关系。
最后,这些语句所需的代码大小与语言有关,而与框架无关。