对Eloquent查询的Laravel SUBSTRING

时间:2017-01-30 12:45:01

标签: mysql laravel-5.3 laravel-eloquent

问题

如何对Eloquent结果中的某一行设置限制?

方案

我需要从结果中的一个字段中检索大约100个字符。目前我正在使用连接语句,因此返回了多个结果。我基本上只需要post.content

中的前100个字符

代码

public function getAll()
    {
        return Post::select('posts.id', 'posts.title', 'posts.content', 'posts.views', 'posts.comments', 'posts.tags', 'posts.date_created', 'users.image_url', 'users.username', 'users.toxick')
                    ->join('users', 'posts.user_id', '=', 'users.id')
                    ->get();
    }

我不确定如何在查询上设置过滤器,只返回100个字符。我已经短暂地环顾了一下,但我发现没有任何有用的东西,至少不是我的具体情况。

1 个答案:

答案 0 :(得分:0)

此刻暂时无法测试(对不起),但是:

public function getAll(){
    $query = Post::select('posts.id', 'posts.title', 'posts.content','posts.views', 'posts.comments', 'posts.tags', 'posts.date_created', 'users.image_url', 'users.username', 'users.toxick')
                ->join('users', 'posts.user_id', '=', 'users.id')
                ->get();

    foreach($query as $entries){
        $entries->content = substr($entries->content, 1, 100);
    }

    return $query;
}