我正在使用MySQL和Laravel。
假设以下(简化的)数据库布局:
snippets
- id
- topic_id
topics
- id
- realm_id
realms
- id
- user_id
user
- id
- name
现在,例如,如果用户要删除一个代码段,那么我必须检查该代码段是否实际上属于该用户。
我现在正在做的是:
class Snippet extends Model
{
public function owner()
{
return $this->topic->realm->owner;
}
}
但这会向数据库触发四个查询,只是为了获取关联的用户。
此外,它与关系语法不一致:
\App\Snippet::find(1)->owner(), but
\App\Realm::find(1)->owner