Get description of sub-category PHP Laravel Eloquent

Asked

Viewed 108 times

0

Hello,

I need to get the description of my parent category, but I can’t get the description in the same select, I can only get the id of the parent category.

I have a table with the following structure

inserir a descrição da imagem aqui

Below is the code that I am getting my products and the category that it is linked to, also get the code of the parent category, but how will I get the description of the parent category?

public static function getMovimentos() {
    return DB::table('movimentos')
                    ->join('produtos', 'produtos.id', '=', 'movimentos.id_produto')
                    ->join('categorias', 'categorias.id', '=', 'produtos.categoria_id')
                    ->select('movimentos.id as id',
                            'categorias.nome as desc_sub',
                            'categorias.id_categoria as id_sub',
                            'produtos.categoria_id as categoria_id',
                            'produtos.id as idProduto',
                            'movimentos.tipo_movimento as tipo_movimento',
                            'movimentos.observacoes as observacoes',
                            'movimentos.quantidade as quantidade',
                            'movimentos.id_produto as id_produto',
                            'movimentos.serie as serie',
                            'movimentos.created_at as data_criacao',
                            'produtos.descricao as descricao',
                            'produtos.codigo_alternativo as codigo_alternativo')
                    ->where('movimentos.id_estoque', '=', session()->get('session_estoque_id'))
            ->get();
}

1 answer

0

You need to add a Join to the category self relationship:

public static function getMovimentos() {
    return DB::table('movimentos')
                ->join('produtos', 'produtos.id', '=', 'movimentos.id_produto')
                ->join('categorias', 'categorias.id', '=', 'produtos.categoria_id')
                ->join('categoria_pai', 'categorias.id', '=', 'categoria_pai.id_categoria')
                ->select('movimentos.id as id',
                        'categorias.nome as desc_sub',
                        'categorias.id_categoria as id_sub',
                        'categoria_pai.nome as desc_pai
                        'produtos.categoria_id as categoria_id',
                        'produtos.id as idProduto',
                        'movimentos.tipo_movimento as tipo_movimento',
                        'movimentos.observacoes as observacoes',
                        'movimentos.quantidade as quantidade',
                        'movimentos.id_produto as id_produto',
                        'movimentos.serie as serie',
                        'movimentos.created_at as data_criacao',
                        'produtos.descricao as descricao',
                        'produtos.codigo_alternativo as codigo_alternativo')
                ->where('movimentos.id_estoque', '=', session()->get('session_estoque_id'))
        ->get();
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.