【发布时间】:2014-12-22 13:09:04
【问题描述】:
我正在使用 Laravel 的 Eloquent ORM,但想定义一个复杂的关系,并且想知道在定义关系时是否可以使用查询构建器或原始 SQL。
这是架构:
表:对象;模型:对象
表:用户;型号:用户
表:objects_users;关系:ManyToMany - 一个对象可以被多个用户拥有,一个用户可以拥有多个对象。
对于普通记录,即单独输入到数据透视表中的记录,使用传统关系可以正常工作。但是,我还想根据其他条件返回其他结果;即,如果设置了调试器标志,则允许所有对象属于用户。本质上,我想模仿这个查询:
SELECT objects.*
FROM objects
LEFT JOIN objects_users ON objects.id = objects_users.object_id
INNER JOIN users ON
objects_users.user_id = users.id
OR users.debugger = 1
或者,如果无法做到这一点,是否可以从查询构建器查询中返回 eloquent 模型?
【问题讨论】:
标签: php sql laravel laravel-4 eloquent