Здравствуйте.
Для отображения данных в представление использую DetailView. Фреймворк Yii2, Бд - MySQL.
Получилось вывести тестовые данные строчками.
Код представления:
use kartik\detail\DetailView;
$attributes = [
'first_name',
'last_name',
'patronymic',
'english_first_name',
'english_last_name',
'gender',
'birthday',
'address_line_1',
'address_line_2',
'company_name',
'postal_code',
'city',
'fax_number',
'mobile_phone',
'work_phone',
'home_phone',
'email',
];
echo DetailView::widget([
'model'=>$model,
'condensed'=>true,
'hover'=>true,
'mode'=>DetailView::MODE_VIEW,
'panel'=>[
'heading'=>'Анкета # ' . $model->id,
'type'=>DetailView::TYPE_INFO,
],
'attributes'=>$attributes
]);
?>
Как сделать разбиение как в примере?
В исходном коде примера есть строчки:
$attributes = [
...
'columns' => [
[
'attribute'=>'id',
'label'=>'Book #',
'displayOnly'=>true,
'valueColOptions'=>['style'=>'width:30%']
],
[
'attribute'=>'book_code',
'format'=>'raw',
'value'=>'<kbd>'.$model->book_code.'</kbd>',
'valueColOptions'=>['style'=>'width:30%'],
'displayOnly'=>true
],
],
...
Но при попытке сделать тоже самое:
$attributes = [
'columns' => [
'first_name',
'last_name',
'patronymic',
'english_first_name',
'english_last_name',
'gender',
'birthday'
],
'address_line_1',
'address_line_2',
'company_name',
'postal_code',
'city',
'fax_number',
'mobile_phone',
'work_phone',
'home_phone',
'email',
];
Выдает ошибку:
The attribute configuration requires the "attribute" element to determine the value and display label.
Как исправить данную ошибку и разбить на колонки?
Впервые взялся за DetailView, но он необходим.
Заранее спасибо за ответы и советы. )
Так. Немного разобрался.
Для того, чтобы сделать в колонку что-то, нужно в атрибутах сделать отдельный массив, и там уже прописывать колонку.
$attributes = [
['columns' =>[
[
'group'=>true,
'label'=>'Personal info',
'displayOnly'=>true,
'groupOptions'=>['class'=>'text-left']
],
[
'group'=>true,
'label'=>'Contact info',
'displayOnly'=>true,
'groupOptions'=>['class'=>'text-left']
]
]
],
['columns' =>
[
[
'attribute'=>'first_name',
'valueColOptions'=>['style'=>'width:30%']
],
[
'attribute'=>'mobile_phone',
'valueColOptions'=>['style'=>'width:30%']
]
],
]
];
Вот так это будет выглядеть на странице:
Осталось решить проблему, чтобы было все в одну линию:
Как решу, дополню ответ.
PS. Чтобы столбцы были ровные, я подгонял их через параметры, у меня получилось:
[
'group'=>true,
'label'=>'Personal info',
'groupOptions'=>['class'=>'text-left','style'=>'width:50.1%']
],
[
'group'=>true,
'label'=>'Contact info',
'groupOptions'=>['class'=>'text-left','style'=>'width:49.9%']
]
Именно groupOptions с style отвечают за это.
Надеюсь, это кому-то поможет. )
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как правильно вывести столбец из таблицы(email из subscribers) в БД в MVC фреймворке(Codeigniter) на новую страницуЧто прописывать в моделях, контроллере...