Laravel 4使用查询构建器为LEFT()mysql字符串函数

时间:2014-02-04 18:18:29

标签: 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);

我没有解除任何错误,我可以使用{{ $post->title }},但是当我尝试使用{{ $post->body }}时,我什么都没看到。

1 个答案:

答案 0 :(得分:0)

看起来没有必要回答这个问题,但是对于这里的情况,您正在尝试摘录字段中的内容,这意味着您只想从141抓取body个字符字段,虽然这可以工作,但你必须调整它,因为LEFT函数将返回正好141个字符,它可以在像{{1}这样的单词中间结束(最后一个字符) }这个词是hel...hello字符是141th所以它需要是一个完整的单词来显示摘录,l有内置的解决方案,使用Laravel方法您可以指定要显示的完整单词数量,所以我想您也可以使用此方法:

Str::words()

默认为:Str::words($post->body, 30); // show first 30 words from the $post->body

words($value, $words = 100, $end = '...')

这将输出来自任何文字的首个Str::words($post->body) 完整字词,并且它将以100结尾,因此,例如,如果...是最后一个字,那么它将会像hello一样结束。