Доброго времени суток, проблема заключается в том что при добалении метода Relations к модели у меня перестают отображаться все страницы связанные с этой моделью. Браузер просто выдает пустую страницу, на которой вообще ничего нет, фактически даже html кода, просто пустой документ. помогите разобраться в чем дело:
Вот код самого метода:
public function relations() {
return array('fields' => array(self::HAS_MANY, 'CategoryFields', 'id_category')); }
Вот структура БД модели в которой идет связка:
**
* This is the model class for table "category".
*
* The followings are the available columns in table 'category':
* @property integer $id
* @property string $title
* @property string $description
* @property integer $id_parent
* @property integer $update_time
* @property integer $ordering
* @property string $paid
* @property integer $price
* @property integer $sales
* @property integer $id_image
*/
Вот структура БД модели с которой связываемся:
/**
* This is the model class for table "category_fields".
*
* The followings are the available columns in table 'category_fields':
* @property integer $id
* @property integer $id_category
* @property string $name
* @property string $description
* @property string $fieldtype
* @property integer $id_virtual_catalog
* @property string $additional_options
* @property string $default_value
* @property integer $maybemany
* @property string $css_class
* @property integer $order_
*/
Версия Yii: 1.1.10
Если ничего не выводит - значит где-то ошибка синтаксиса php.
Включи отображение всех ошибок и попытайся найти её.
Имею смелость предположить, что ты сидишь на linux. Конечно, отображение ошибок везде можно отключить/включить и всё это специфично, но думаю, что у тебя linux Надо просто включить отображение ошибок.
ini_set('display_errors','On');
error_reporting(E_ALL);
В начале index.php. Это решение костыльное, т.к. у yii, думаю, есть специальный инструмент для работы с ошибками, всё таки большой фреймворк.
manyrus, на сколько помню
define('YII_DEBUG', TRUE);
перед подключением yii.
Но если ошибка фатальная, то это естественно не поможет
4, скорее всего это ошибка синтаксиса, поэтому и посоветовал сразу включить ошибки.
Дебаггер yii вряд ли отловит ошибку синтаксиса (я правда пока не проверял, сам только-только изучаю)
В самый вверх index.php, после открывающего тега разумеется, добавьте это:
[php:1:cd45451d5b]
ini_set("display_errors","1");
ini_set("display_startup_errors","1");
ini_set('error_reporting', E_ALL);
[/php:1:cd45451d5b]
Связи прописаны в обеих классах?
В `CategoryFields` должно быть что-то вроде:
[php:1:cd45451d5b] public function relations()
{
return array('categories'=>array(self::HAS_MANY, 'Category', 'id'));
}
[/php:1:cd45451d5b]
А в `category`:
[php:1:cd45451d5b] public function relations()
{
return array('category'=>array(self::BELONGS_TO, 'CategoryFields', 'id_category'));
}
[/php:1:cd45451d5b]
Что то в этом роде. И да, все модели должны наследовать класс CActiveRecord.
[Diwms], ясень пень) и до загрузки не думаю что кто либо будет писать кучу кода, так что не велика потеря
10 Июл 2012, 16:49Спасибо народ, что-то я забыл что на серваке у нас отключен показ ошибок =D
Вот что выдает apache:
Fatal error: Cannot redeclare Category::relations() in ..\models\Category.php on line 114
Я так понимаю проблема в полиморфизме, а точней в правах доступа к методу.
Кто раньше сталкивался с такой ошибкой? как ее исправить?
Я бы загуглил, но дело в том что доступ к инету сейчас с телефона, что крайне не удобно =(