У меня есть небольшая проблема. Модель My Commodity имеет и относится ко многим ассоциациям с моделью пользователя. В БД они связаны через таблицу commodities_users
. Итак, я хочу, чтобы Cakephp создавал новые записи в таблице commodities_users
в БД при создании нового Commodity. Но это не сработает. Моего $this->request->data
массив (если я хочу экономить один новый товар) выглядит следующим образомСохранение связанных с HABTM данных в cakephp
array(
'Commodity' => array(
'commodity_type' => '0',
'commoditygroup_id' => '',
'name' => 'asdfad',
'code' => '',
'ean' => '',
'costprice' => '',
'saleprice' => '12512,123',
'default_vatrate' => '',
'saleprice_gross' => '',
'sync_cashconnector' => '1',
'commoditysetting_id' => '',
'default_amount_enabled' => '0',
'default_amount' => '',
'stock_min' => '',
'stock' => '',
'comment' => ''
),
'User' => array(
(int) 0 => array(
'id' => '23'
),
(int) 1 => array(
'id' => '24'
),
(int) 2 => array(
'id' => '30'
),
(int) 3 => array(
'id' => '31'
)
));
И я спасаю от модели Товарного этого пути $this->Commodity->saveAll($this->request->data);
My CakePHP версия 2.4. Отношения
var $hasAndBelongsToMany = array(
'User' => array(
'className' => 'User',
'joinTable' => 'commodities_users',
'foreignKey' => 'commodity_id',
'associationForeignKey' => 'user_id',
),
);
Что я делаю неправильно?
Вы не упомянули свою версию cakephp, а также не отображали свои отношения по схеме модели и схеме таблиц. если вы поделитесь им, вам будет проще помочь вам – tarikul05
@ tarikul05, посмотрите, я внес некоторые изменения. – Vladislav
Не могли бы вы добавить ** «публичный» ** instate ** «var» ** в ваших отношениях, – tarikul05