Php Laravel 4使用query builder for LEFT()mysql字符串函数
我想知道如何使用Laravel的查询生成器创建一个LEFT()字符串函数。这就是我要做的,它会为我返回正确的结果 MySQL版本Php Laravel 4使用query builder for LEFT()mysql字符串函数,php,mysql,laravel,laravel-4,query-builder,Php,Mysql,Laravel,Laravel 4,Query Builder,我想知道如何使用Laravel的查询生成器创建一个LEFT()字符串函数。这就是我要做的,它会为我返回正确的结果 MySQL版本 SELECT id, title, LEFT(body, 141) AS body FROM posts 尝试使用查询生成器 $posts = Post::select('title', 'id', DB::raw('left("body", 141)'))->orderBy('created_at')->get(3); 我不回顾任何错误,我可以使用
SELECT id, title, LEFT(body, 141) AS body FROM posts
尝试使用查询生成器
$posts = Post::select('title', 'id', DB::raw('left("body", 141)'))->orderBy('created_at')->get(3);
我不回顾任何错误,我可以使用
{{{$post->title}
,但是当我尝试使用{{{$post->body}
时,我什么也看不到 看起来没有必要回答这个问题,但考虑到这里的情况,您正在尝试从一个字段中摘录内容,这意味着您只想从body
字段中抓取141
字符,虽然这可以工作,但您必须对其进行调整,因为LEFT
函数将精确返回141
字符,并且可能会结束(最后一个字符)在像“代码> HEL……/代码>中的一个词中,单词是<代码> hello < /代码>和<代码>第一百四十一< /代码>字符是“代码> L>代码”,因此它需要一个完整的单词来显示摘录和<代码> Laravel < /代码>为此有内置的解决方案,使用<代码> STR::单词())/代码>方法,您可以指定多少个完整的单词来显示,所以我想,您也可以使用此选项:
Str::words($post->body, 30); // show first 30 words from the $post->body
默认值为:words($value,$words=100,$end='…)
这将首先输出任何文本中的
100
完整单词,并以…
结尾,例如,如果hello
是最后一个词,那么它将以hello…
结束。您在查询生成器中没有将左函数别名为body
。感谢@briangraz现在工作。感谢@sheikherra我不知道这一点:)
Str::words($post->body)