суббота, 8 сентября 2012 г.

Yii, extensions simpletree with FOREIGN KEY

Lang: php
Framework: Yii

Если в таблице использовать Вне́шний ключ (англ. foreign key), то данные не отображаются, или отображаются не все. Это происходит из-за того, что плагин не обрабатывает null в поле parent_id. А 0 мы поставить не можем из-за внешнего ключа.

Решение такое, заменяем строку:

> 207 foreach ($Model->findAllByAttributes(array($_REQUEST['modelPropertyParentId']=>$_REQUEST['id'])) AS $k => $Model)
На следующий код:
$criteria = new CDbCriteria();
$criteria->addCondition($_REQUEST['modelPropertyParentId']." = ".$_REQUEST['id']);
if (!$_REQUEST['id']) {
      $criteria->addCondition($_REQUEST['modelPropertyParentId']." IS NULL", 'OR');
}
foreach ($Model->findAll($criteria) AS $k => $Model) 

И можно смело дальше использовать плагин.

PS. Если кто найдет email автора плагина - JayRoe, скажите ему об этой недоработке.

Комментариев нет: