我对Laravel和Fluent的查询很新 . 我有一个查询来从hire表中选择所有行并以随机顺序显示它们 .
DB::table('hire_bikes')->order_by(\DB::raw('RAND()'))->get();
我现在想做的就是放
concat(SUBSTRING_INDEX(description, " ",25),"...") AS description
进入查询的SELECT部分,这样我就可以从表中选择*和缩短的描述 .
我知道这可以通过运行原始查询来实现,但我希望能够使用Fluent或至少部分Fluent(如上所述)来完成此操作 .
任何帮助或想法?
谢谢亚当 .
3 回答
您可以通过在流畅查询中向选择数组添加
DB::raw()
来实现此目的 . 我在本地进行了测试,效果很好 .实际上,您可以在不使用
DB::raw()
的情况下使用selectAS
. 只需将数组传入select()
方法,如下所示:刚刚测试过 .
EDIT:
另外,我建议不要使用
DB:raw()
查询来执行描述字段的连接 . 如果您正在使用雄辩的模型,您可以使用accessors & mutatators为您执行此操作,因此如果您需要有限的描述,您只需在视图中输出它,而不必每次都使用相同的查询来获得有限的描述 . 例如:在你看来:
示例输出(不准确限制):
EDIT #2:
我还建议不要使用数据库外观,因为它总是使用您的默认连接 . 如果您要查询辅助连接,除非您使用以下方法主动指定,否则不会考虑此问题: