Не определено свойство...

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
DronTat
Сообщения: 11
Зарегистрирован: 2017.12.19, 14:29

Не определено свойство...

Сообщение DronTat »

Добрый вечер.Только начал учиться, сильно не пинайте :roll: На сервере крутиться сайт, все работает. С разработчиками не контакта. Попросили из нескольких таблиц в базе собрать данные и отобразить их на одной страницы в виде таблицы. Все хорошо, 10 столбцов я сделал, но одна последняя никак не встает, выдает "Не определено свойство "Transport.storage_id".

Код: Выделить всё

C:\server\data\www\framework\db\ar\CActiveRecord.php(145)
Собственно часть кода:

Код: Выделить всё

$this->widget('bootstrap.widgets.TbGridView', array(
    'type' => TbHtml::GRID_TYPE_BORDERED,
    'id' => 'transport-grid',
    'dataProvider' => $model->search(),
    'columns' => array(
        'tr_number',
        'tr_driver',
        'tr_provider',
        'tr_load',
        ...
        array(
            'header' => 'Пункт приёма',
            'value' => '$data->storage->storage_id',
        ),
Модель:

Код: Выделить всё

public function relations() {
	return array(
	    'transport_date' => array(self::BELONGS_TO, 'TransportDate', array('tr_id' => 'tr_id')),
	    'transport_storage' => array(self::BELONGS_TO, 'TransportStorage', array('tr_id' => 'tr_id')),
	    'laboratory' => array(self::BELONGS_TO, 'Laboratory', array('tr_id' => 'tr_id')),
	    'weight' => array(self::BELONGS_TO, 'Weight', array('tr_id' => 'tr_id')),
            'card' => array(self::BELONGS_TO, 'Card', array('card_id' => 'card_id')),
            'storage' => array(self::BELONGS_TO, 'Storage', 'storage_id'),
	);
    }

   public function attributeLabels() {
	return array(
	    'tr_id' => '№',
	    'tr_1c_id' => 'Tr 1c',
	    'tr_number' => 'Номер',
	    'tr_driver' => 'Водитель',
	    'tr_provider' => 'Поставщик',
	    'tr_load' => 'Груз',
	    'card_id' => 'Метка',
	    'tr_trailer' => 'Автомобиль с прицепом',
	    'tr_body_left' => 'Выгрузка налево',
	    'tr_body_right' => 'Выгрузка направо',
	    'tr_body_back' => 'Выгрузка назад',
            'tr_body_long' => 'Длинный автомобиль',
	    'on_territory' => '1 - авто на территории, 0 - ждет очередь на заезд, 2 - покинул территорию',
            'storage_id' => 'Storage'
	);
    }
Не могу обмозговать где допущена ошибка
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Не определено свойство...

Сообщение urichalex »

'value' => '$data->storage ? $data->storage->storage_id : "Не определено"',
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не определено свойство...

Сообщение zelenin »

думаю, так 'value' => '$data->storage->id',
DronTat
Сообщения: 11
Зарегистрирован: 2017.12.19, 14:29

Re: Не определено свойство...

Сообщение DronTat »

К сожалению эти варианты перепробованы и не дали результатов.
Другая модель, которая рабочая:

Код: Выделить всё

public function rules() {
	return array(
	    array('tr_id', 'required'),
	    array('counter_number, tr_id, storage_id, last_on_scoreboard, no_entry', 'numerical', 'integerOnly' => true),
	    array('queue_after_lab_id, counter_number, tr_id, storage_id, last_on_scoreboard, no_entry, lab_fail, on_territory', 'safe', 'on' => 'search'),
	);
    }
    
    public function relations() {
	return array(
	    'transport' => array(self::BELONGS_TO, 'Transport', 'tr_id'),
	    'laboratory' => array(self::HAS_ONE, 'Laboratory', array('tr_id' => 'tr_id')), /// не по PK
	    'weight' => array(self::HAS_ONE, 'Weight', array('tr_id' => 'tr_id')),
	    'storage' => array(self::BELONGS_TO, 'Storage', 'storage_id'),
	);
    }
    
    public function attributeLabels() {
	return array(
	    'queue_after_lab_id' => 'Queue After Lab',
	    'counter_number' => 'счетчик. количество раз присутствие авто на табло',
	    'storage_id' => 'Storage',
	    'last_on_scoreboard' => 'авто последним выводилось на табло, 1 - да, 0 - нет',
	    'no_entry' => 'въезд запрещен, 1 - да, 0 - нет',
            );
    }
И сам index.php:

Код: Выделить всё

$this->widget('bootstrap.widgets.TbGridView', array(
    'type' => TbHtml::GRID_TYPE_BORDERED,
    'id' => 'transport-grid',
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
        'tr_id',
        ...
        'storage_id' => array(
                            'header' => 'Пункт приёма',
                            'value' => '$data->storage->storage_name',
                        ),
        
Вот тут работает.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не определено свойство...

Сообщение zelenin »

вы что сделать-то хотите?
DronTat
Сообщения: 11
Зарегистрирован: 2017.12.19, 14:29

Re: Не определено свойство...

Сообщение DronTat »

Есть уже страницы, где выводиться данные из базы, этих страниц около 10 и с разной информацией. Я создал дополнительную страницу, выделяя из базы только определенные данные, что бы не бегать по сайту. Страница почти готова, только один столбец никак не выходит, где то ошибка
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не определено свойство...

Сообщение zelenin »

DronTat писал(а): 2017.12.20, 17:07 Есть уже страницы, где выводиться данные из базы, этих страниц около 10 и с разной информацией. Я создал дополнительную страницу, выделяя из базы только определенные данные, что бы не бегать по сайту. Страница почти готова, только один столбец никак не выходит, где то ошибка
что за столбец? какой модели? какого отношения с родительской моделью?
Ответить