У меня есть модель, которая имеет отношение к отношению, которое не требуется.CakePHP: принадлежит с нулевым значением
Banana belongsTo Basket
banana.basket_id can be null
Это означает, что банан может принадлежать корзине, но это необязательно.
операция сохранения Banana->save(array('Banana' => array('basket_id' => null, 'weight' => 50)));
работает нормально, но когда я читаю, я получаю этот результат:
array(
'Banana' => array('id' => 10, 'basket_id' => null, 'weight' => 50),
'Basket' => array('id' => null, 'bannana_count' => null)
)
Конечно, я мог фильтровать его в afterFind, но я предпочел бы видеть не иметь корзины в результирующий массив, если basket_id имеет значение NULL. Что делать?
Использование CakePHP 2.3.6.
Я создал единичный тест, чтобы проверить это. Если вы делаете INNER JOIN, вы получаете пустой набор результатов (то же, что и в SQL). Вы можете увидеть тест здесь: https://gist.github.com/dizyart/5892935 –
Я добавил условия для своего ответа, если это все еще не работает, отправьте созданный SQL-запрос. – Costa
INNER ничего не показывает, если нет совпадения. Я думаю, что он бы не существовал, чтобы ассоциация не отображала нулевые столбцы. – giuseppe