Amigos,
estou precisando tirar uma dúvida com vocês!
Tenho duas tabelas: produtos e categorias.
-------------
Produtos
-------------
cod
nome
desc_produto
img_produto
preco
categoria_id
-------------
Categoria
-------------
id
nome
Fiz um sidebar gerar uma lista das categorias cadastradas no banco com um link contendo todos os produtos relacionados na categoria. E agora o que acontece, estou tentando ordenar pelo preço do produto.
Fiz um método no controller da seguinda forma:
$this->viewBuilder()->setLayout('buscar_categoria');
$categoria = $this->Categorias->get($id, [
'contain' => ['Produtos'],
'order' => ['Produtos.preco' => 'ASC']
]);
$this->set('categoria', $categoria);
Só que dessa forma dá erro: Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Produtos.preco' in 'order clause'.
Como eu faço pra acessar esse campo no meu controller de categorias?
----------------------
Model Categoria
----------------------
public function initialize(array $config)
{
parent::initialize($config);
$this->setTable('categorias');
$this->setDisplayField('nome');
$this->setPrimaryKey('id');
$this->hasMany('Produtos', [
'foreignKey' => 'categoria_id',
]);
}
---------------------
Model Produtos
----------------------
parent::initialize($config);
$this->setTable('produtos');
$this->setDisplayField('id');
$this->setPrimaryKey('id');
$this->belongsTo('Usuarios', [
'foreignKey' => 'usuario_id',
'joinType' => 'INNER',
]);
$this->belongsTo('Categorias', [
'foreignKey' => 'categoria_id',
'joinType' => 'INNER',
]);
Agradeço desde já a colaboração!