这一定是初学者的问题,但我不太清楚要走的路是什么。 我正在尝试在链接到不同类的特定对象的数据库中保存多个对象。
我的第一个想法是在模型中创建一个方法,在参数中获取一组ID并手动保存它们中的每一个(类似的东西:
class TestScenario extends Model
{
[...]
public function saveScenario($scripts)
{
[...]
ScenarioElement::insert(['test_scenario_id'=>$this->id,'elementary_script_id'=> $scripts[0]]);
});
}
所以,我的第一个问题是:如何获取模型所代表的对象实例的正确id? (显然$this->id
无效,我通过控制器中的$testScenario->saveScenario($scripts);
调用此方法。
正如您所猜测的,我有另一个模型(类ScenarioElement extends Model) - 以及两者之间的关系,在TestScenario中:
public function getScenarioElements()
{
return $this->hasMany(ScenarioElement::class)->orderBy('order','asc');
}
还有另一种方法可以保存吗?
感谢您的帮助和投入!
答案 0 :(得分:0)
定义模型关系的正确命名约定如下:
class TestScenario extends Model
{
public function scenarioElements()
{
return $this->hasMany(ScenarioElement::class)->orderBy('order','asc');
}
}
反过来说:
class ScenarioElement extends Model
{
public function testScenario()
{
return $this->belongsTo(TestScenario::class);
}
}
在scenario_elements的相应数据库迁移中,您将拥有:
$table->integer('test_scenario_id)->unsigned();
$table->foreign('test_scenario_id')->refences('id')->on('test_scenarios');