У меня есть следующая таблица:Yii отображать несколько Дочерние элементы как ссылки в CGridView поле
CREATE TABLE "place" (
"id" int8 NOT NULL DEFAULT nextval('place_id_seq'::regclass),
"name" varchar(128) NOT NULL,
"parent" int8,
"description" varchar(100)
)
WITH (OIDS=FALSE);
(это PostgreSQL, но это не должно быть уместным здесь)
Я создал CRUD через giix и немного изменили отношения, соответствующие моим потребностям. Так что я закончил с:
public function relations() {
return array(
'parent0' => array(self::BELONGS_TO, 'Places', 'parent'),
'places' => array(self::HAS_MANY, 'Places', 'parent'),
);
}
Цель здесь состоит в том, что это место может принадлежать к другому месту и иметь несколько детей мест.
Моя проблема заключается в том, что мне нужно изменить действие администратора, чтобы соответствовать следующей сетке:
Печать манипулируют инспектором, чтобы отразить желаемое поведение
Так что моя проблема в том, чтобы получить список все дочерние объекты и отображают его как список ссылок. Я попытался изменить соответствующий файл admin.php представлений для:
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'places-grid',
'dataProvider' => new CActiveDataProvider('Places', array('id'=>$model->places)),
'filter' => $model,
'columns' => array(
array(
'name'=>'parent',
'value'=>'GxHtml::valueEx($data->parent0)',
'filter'=>GxHtml::listDataEx(Places::model()->findAllAttributes(null, true)),
),
'name',
'places',
array(
'class' => 'CButtonColumn',
),
),
));
Но это, как и следовало ожидать, прошлифованную ошибка:
htmlspecialchars() expects parameter 1 to be string, array given
Кроме того, я не знаю, это будет даже работать со встроенным быстрый поиск.
Не могли бы вы любезно указать мне правильное направление здесь?
все ваши вопросы уже есть решения здесь на кого-н, обрабатывать их по одному за раз, первым сделать фильтр правильно отображаться, а затем пойти сделать поисковую работу, то ссылку. используйте s.o. поиск, и вы найдете ответы. –