php - 在 Laravel 中使用 ->paginate() 时出错

标签 php laravel laravel-4 pagination

所以我的论坛上有这个主题 Controller 。该主题有很多帖子,并且该帖子属于该主题。

class Topic 
{
    public function posts()
    {
        return $this->hasMany('Post');
    }
}

class Post 
{
    public function topic() 
    {
        return $this->belongsTo('Topic');
    }
}

要获取有关某个主题以及与其相关的所有帖子的信息,我会这样做:

$query = Topic::where('id', $id)->with('posts');

但是每次我尝试添加:

$query = $query->paginate(15)

我使用$topic->title,我得到:

Undefined property: Illuminate\Pagination\Paginator::$title

有什么想法吗?谢谢。

编辑:哦,如果我使用 ->get() 而不是 ->paginate() 我就不会出现错误。

最佳答案

paginate(15) 调用返回一个 Paginator 对象,其中包含许多 Topic 项。如果您想获取其中一项的 title 字段,则需要先获取其中一项。例如,您可以通过以下方式执行此操作:

$query->first()->title;

更有可能的是,您将循环遍历结果并像这样使用它们:

foreach($query as $key => $value)
{
    // do something here, $value contains a Topic object.
    $name = $value->name;
}

关于php - 在 Laravel 中使用 ->paginate() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25027615/

相关文章:

php - 将过滤器附加到 laravel 中集合的 sql 结果

javascript - Jquery 无限滚动循环使用 Mysql/PHP

php - 如何对用户隐藏 paypal 按钮代码?

php - Laravel 查询两个日期列数据库中的两个日期

Laravel 4 - 包或 "modules"?

php - 想要在图像下载过程中显示 “loading” 图像 - Javascript

html - 具有相同图像大小的 Bootstrap Gallery

mysql - Laravel 文件上传超时 - 添加 block 到 updateOrCreate?

php - 如何避免筛选报价

php - SQLSTATE[HY000] [2005] Laravel 中未知的 MySQL 服务器主机 ' ' (2)