关系并不适用于laravel分页

时间:2013-12-27 16:13:01

标签: php laravel pagination eloquent

我无法与使用分页的laravel 4.1中雄辩的作品联系起来

这是我雄辩的模特

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

我得到ErrorException。试图获得非对象的属性

当我使用

dd($product->info)

我得到了NULL

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

可能是您的关系设置不正确。一般来说,遇到这个问题就是这种情况。如果您使用BelongsTo而不是HasMany或其他东西。请查看此文章以获取参考:http://matthewhailwood.co.nz/visualizing-laravel-relationships/

此外,您应该在分页之前加急关系,否则就有可能遇到N + 1问题。你应该Featured::with(array('info'))->paginate(20);