如何从关系中分页对象

时间:2015-07-23 19:36:59

标签: laravel orm eloquent laravel-5

如何从带有categoria的相关produtos返回带有分页的相同查询?

我的Model DB

Model DataBase

配置Model Eloquent categoria

namespace App\Models;

class Categoria extends ModelDefault
{
    protected $table = 'categoria';

    public function produtos()
    {
        return $this->belongsToMany('App\Models\Produto', 'categoria_produto', 'categoria_id')->withTimestamps();
    }

}

配置Model Eloquent produto

namespace App\Models;

class Produto extends ModelDefault
{
    protected $table = 'produto';

    public function categorias()
    {
        return $this->belongsToMany('App\Models\Categoria', 'categoria_produto', 'produto_id')->withTimestamps();
    }

    public function images()
    {
        return $this->hasMany('App\Models\ProdutoImagem','produto_id', 'id');
    }

}

我从produtos获取categoria的查询:

$produtosPorCategoria = Categoria::with(['produtos.images.image'])
        ->where('slug', $categoria_slug)
        ->ativo()
        ->first();
    dd($produtosPorCategoria);

在这里,您可以看到我返回的数组中的版画屏幕:

enter image description here

1 个答案:

答案 0 :(得分:1)

如果我明白你需要什么。你应该试试这个

$produtosPorCategoria = Categoria::with(['produtos.images.image'])
    ->where('slug', $categoria_slug)
    ->ativo()
    ->first();

应该是

$produtosPorCategoria = Categoria::with(['produtos.images.image'])
    ->where('slug', $categoria_slug)
    ->ativo()
    ->first();

$produtosPorCategoria = $produtosPorCategoria->produtos()->paginate(5);