У меня в настоящее время имеет отношение toMany между двумя Таблица, Skus
и Medias
. Однако я назвал таблицу соединений skus_images.Торт 3 сбережения принадлежитToMany отношения сбоев
Я пытаюсь сохранить только идентификаторы, а не вставлять новые данные в путь HABTM. у меня в форме:
echo $this->Form->input('images._ids', ['options' => $images, 'multiple' => 'checkbox']);
И все работает нормально там, я правильно получать мои Medias в списке. Но всякий раз, когда я пытаюсь отправить форму, я получаю это:
Error: Call to a member function get() on a non-object
File /home/weshguillaume/AndyToGaby/vendor/cakephp/cakephp/src/ORM/Association/BelongsToMany.php
Line: 874
Я уже определили свои отношения как таковые в SkusTable
:
$this->belongsToMany('Images', [
'className' => 'Media.Medias',
'joinTable' => 'skus_images',
'targetForeignKey' => 'image_id'
]);
контекст не дает понимания, ни один не делает трассировка стека, поскольку она (почти) пустая. Спасибо :)
EDIT: контроллер добавить метод:
public function add($product_id)
{
$skus = $this->Skus->newEntity();
if ($this->request->is('post')) {
$skus = $this->Skus->patchEntity($skus, $this->request->data(), [
'associated' => [
'Attributes'
]
]);
if ($this->Skus->save($skus)) {
$this->Flash->success('The skus has been saved.');
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error('The skus could not be saved. Please, try again.');
}
}
$attributes = $this->Skus->Attributes->find('list');
$images = $this->Skus->Products->getMedias('list', $product_id, 'photo');
$this->set(compact('skus', 'products', 'attributes', 'images', 'product_id'));
$this->set('_serialize', ['skus']);
}
контроллер размещены данные:
[
'product_id' => '65',
'attributes' => [
'_ids' => ''
],
'reference' => '',
'quantity' => '420',
'is_default' => '0',
'images' => [
'_ids' => [
(int) 0 => '90'
]
]
]
Пожалуйста, откройте билет, фатальная ошибка должна быть предотвращена. В то же время. Можете ли вы предоставить данные, которые отправляются на контроллер, а также вставить код контроллера, пожалуйста. –
Я добавил данные и метод контроллера. Я создаю билет на Cake3 github. благодаря – whitep4nther