Я новичок в Cakephp 3.0, и я не знаю, как получить все продукты контрактов в моем примере.
Модели:
SalesContracts:
<?php
namespace App\Model\Table;
use Cake\ORM\Table;
class SalesContractsTable extends Table
{
public function initialize(array $config)
{
$this->addBehavior('Timestamp');
$this->table('sales_contracts');
$this->belongsToMany('SalesProducts',[
'className' => 'SalesProducts',
'type' => 'INNER',
'joinTable' => 'sales_contracts_products',
'foreignKey' => 'sales_contracts_id',
'targetForeignKey' => 'sales_products_id'
]);
}
}
SalesProducts:
<?php
namespace App\Model\Table;
use Cake\ORM\Table;
class SalesProductsTable extends Table
{
public function initialize(array $config)
{
$this->addBehavior('Timestamp');
$this->table('sales_products');
$this->belongsToMany('SalesContracts',[
'className' => 'SalesContracts',
'joinTable' => 'sales_contracts_products',
'type' => 'INNER',
'foreignKey' => 'sales_products_id',
'targetForeignKey' => 'sales_contracts_id'
]);
}
}
Этот метод получает идентификатор контракта в параметре, и мне нужно использовать его, чтобы получить его продукты.
public function show_products($id = null){
$products $this->SalesContracts->find('all')->contain(['SalesProducts'])->where(['SalesContractsProducts.sales_contracts_id' => $id]);
}
Но я не могу написать правильный запрос об этом ..
Какие-либо решения?
Спасибо за вашу помощь!
Задача ещё не решена.
Других решений пока нет …