【问题标题】:Relation doesn't work on laravel pagination关系不适用于 laravel 分页
【发布时间】:2013-12-27 16:13:01
【问题描述】:

我无法使用分页在 laravel 4.1 上与 eloquent 中的作品建立联系

这是我的雄辩模型

class Featured extends Eloquent {

    public function info()
    {
        $this->belongsTo('Product');
    }

}

这是我的控制器

$products = Featured::paginate(20);
return View::make('featured')->with('products', $products);

这是我的看法

@foreach ($products as $product)
    {{ $product->info->name }}
@endforeach

我得到错误异常。试图获取非对象的属性

当我使用时

dd($product->info)

我收到了NULL

我的代码有什么问题?

【问题讨论】:

    标签: php laravel pagination eloquent


    【解决方案1】:

    可能是您的关系设置不正确。当我遇到这个问题时,通常就是这种情况。如果您使用 BelongsTo 而不是 HasMany 或其他东西。查看这篇文章以供参考:http://matthewhailwood.co.nz/visualizing-laravel-relationships/

    另外,您应该在分页之前预先加载您的关系,否则您将面临遇到 N+1 问题的风险。你应该这样做Featured::with(array('info'))->paginate(20);

    【讨论】:

    • 感谢您指出我的关系设置。问题是外键与雄辩的方法名称不匹配。我应该更彻底。谢谢!
    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 2020-08-10
    • 2023-03-18
    • 2021-05-06
    • 2021-03-11
    • 1970-01-01
    • 2017-09-14
    • 2015-08-11
    相关资源
    最近更新 更多