我有Project
模型,hasMany
Node
模型。 Node
模型是可变形的:
public function nodeable()
{
return $this->morphTo();
}
它可以变为Text
模型或Video
模型。
示例:
public function node()
{
return $this->morphOne(Node::class, 'nodeable');
}
这一切都很完美,我目前的一个问题是我需要在创建nodeable
之后直接检索Node
模型。例如:
$project = factory(\App\Project::class)->create();
$video = factory(\App\Video::class)->create();
$node = new App\Node;
$project->nodes()->save($node);
$video->node()->save($node);
现在我需要return
新创建的Node
及其nodeable
关系模型。
这样做的一种方法是:
return App\Node::with('nodeable')->find($node->id)
工作正常,但正如你所看到的,我正在查询数据库,从技术上讲,创建模型时我所需要的一切都应该是可访问的,对吧?
是否不能仅返回nodeable
模型而不必为其执行单独的查询?