如何调用Laravel Accessor

时间:2014-04-29 05:08:48

标签: laravel-4 accessor

产品型号中的

public function getPaginatedAttribute()
{
    $posts = $this->posts;

    return \Paginator::make($posts, $posts->count(), 10);
}

在控制器中调用时

$product = Product::with('categories')->paginated();

总是错误

Call to undefined method Illuminate\Database\Query\Builder::paginated(); 

2 个答案:

答案 0 :(得分:0)

我认为你不需要这里的访问者。

您可以在模型中创建一个功能,然后从控制器中调用它。

产品型号:

public static function paginated()
{
    $posts = self::with('categories')->get();

    return \Paginator::make($posts, $posts->count(), 10);
}

控制器:

$product = Product::paginated();

Accessor用于转换模型的属性: http://laravel.com/docs/eloquent#accessors-and-mutators

我不确定这是你想要的。

答案 1 :(得分:0)

在这种情况下,由于您尝试从构建器调用访问者,因此您收到该错误。

$product = Product::with('categories')->get()->paginated();