I'm working with framework Laravel
on versão 5.2
I'm developing a API
where I have a Painel administrativo
that produces and manages content, in this case produto
, and I have another site that will consume API do painel administrativo
where it has to list all products.
Within produto
I have several items like: images, category, subcategory, among others. I am consuming this API
via JQUERY
by issuing the $.getJSON()
command. But I'm having trouble accessing my product items like images.
In my Model produto
I did as follows:
use SoftDeletes;
protected $fillable = [
'CdSubCategoria',
'NmProduto',
'DscProduto',
'VlUnit',
'UnitEmEstoque',
'FlgDescontinuado',
'FlgProdutoVisivel',
'Visivel_Ini',
'Visivel_Fim',
'FlgPontua',
'QtdPontos',
'MaxPontosPorSubCategoria'
];
protected $primaryKey = 'CdProduto';
protected $dates = ['deleted_at'];
public function subCategoria()
{
return $this->belongsTo('App\SubCategoria','CdSubCategoria','CdSubCategoria');
}
public function imagens(){
return $this->hasMany('App\Imagem', 'CdProduto', 'CdProduto');
}
public function lotes(){
return $this->hasMany('App\LoteProduto', 'CdProduto', 'CdProduto');
}
public function tipo_produto_embalagem(){
return $this->belongsTo('App\TipoProdutoEmbalagem', 'CdProduto', 'CdProduto');
}
In my Controller Produto
which is where access with $.getJSON()
I did the following, a index()
function that identifies the first metodo
of my controller
:
public function index(){
$produtos = Produto::all();
if(Request::wantsJson()){
return compact('produtos');
}else{
return view('Produto.listProduto', compact('produtos'));
}
}
My return compact('produtos')
is what sends when I make requisição
.
On my site I'm getting this array
and I make a .each()
on my váriavel
within this .each()
that I'm trying to access my product items as images.
My code looks like this:
$.getJSON('http://localhost:8000/produtos', function(data) {
$('#todosProdutos').html('');
$.each(data, function (key, item) {
var ANTIGO = $('#todosProdutos').html();
console.log(item.imagens); //Aqui dei um console para tentar verificar as imagens porém retorna undefined
var html = ANTIGO + 'MEU HTML';
});
//console.log(html);
// $('#todosProdutos').html(html);
console.log(data);
});
In my console.log(item.imagens)
is returning undefined
in which part of the process am I missing? I tried accessing others as a category, and it's not working either.
When I give console.log(item)
it returns only the items that are actually in the same product table, as an example: NmProduct, VlUnit, UnitEmEstoque, etc.