我是Laravel 5.4的新手并且正在进行一些查询操作。现在我使用查询构建器创建了一个查询,如下所示:
$view = DB::table('blocks')
->leftjoin('programmes', 'blocks.programme_id', '=', 'programmes.id')
->select('blocks.id', 'blocks.programme_id', 'blocks.name', 'blocks.colour', 'blocks.year', 'programmes.title AS programme');
我还有两个表“日期”和“模块”。每个日期以及模块都属于块。
现在我想用程序,日期和模块获取所有块。我知道我可以使用with()方法来获取所有这些。但是根据我对Laravel的了解,只有当我拥有每个表的模型文件并且它们之间有关系时,我才能使用with()方法。
但是不想使用模型并定义它们之间的关系。我只想知道如何在不创建模型的情况下获取程序,日期和模块的块数据,并在模型中定义它们之间的关系?有没有其他方法可以在没有模型的情况下使用()方法?
阻止日期和模块是有条件的,有时我不希望用块获取此表的数据。
请帮我解决这个问题。
答案 0 :(得分:2)
你不能自动完成。急切加载仅适用于Eloquent模型,因此您无法将其与查询构建器一起使用。但是在大多数情况下,您也可以使用Eloquent来获取更复杂的查询(在使用Eloquent时也可以使用连接),这样您就可以使用预先加载。
但如果您根本不想使用Eloquent,显然您需要为急切加载创建一些自定义机制。