У меня есть этот код:
$vehicleList = CHtml::listData(Vehicle::model()->findAllByAttributes(
array(
'user_id'=>$company->user_id,
'status'=>1,'archived'=>0, 'deleted'=>0
)
),
'id', 'vehicle_model'
);
И этот код:
<?php echo CHtml::activeDropDownList(
$jobEvent,
'vehicle_id',
$vehicleList,
array(
'empty'=>'',
'options'=>$vehicleListOptions,
));
?>
Это генерирует вывод следующим образом:
<option value="45" class="option_45">Alfa 159 </option>
Из Vehicle::model()->findAllByAttributes()
Я хочу получить другие атрибуты в качестве номера License Plate
и Vehicle Description
чтобы сделать вывод следующим образом:
<option value="45" class="option_45">Alfa 159 (License Plate ) <br> Vehicle Description </option>
Любая идея?
Всего 2 ответа
На самом деле я решил, что моя просьба
$vehicleList = CHtml::listData(Vehicle::model()->findAllByAttributes(
array(
'user_id'=>$company->user_id,
'status'=>1,'archived'=>0, 'deleted'=>0
),
array("select"=>"id,concat(vehicle_model ,' ( ', license_plate ,' ) - ', vehicle_description) as vehicle_model")
),
'id', 'vehicle_model'
);
добавив новую строку массива
array ("select" => "id, concat (vehicle_model, '(', license_plate, ') -', vehicle_description) как vehicle_model")),
Я пытаюсь добавить новую строку после (license_plate), добавив « n», varchar (13) .. но это не работает.
Вы должны использовать Closure для создания такого описания:
$vehicles = Vehicle::model()->findAllByAttributes([
'user_id' => $company->user_id,
'status' => 1, 'archived' => 0, 'deleted' => 0,
]);
$vehicleList = CHtml::listData($vehicles, 'id', function ($model) {
/* @var $model Vehicle */
return "{$model->vehicle_model} ({$model->license_plate}) {$model->vehicle_description}";
});
Вы можете найти дополнительную информацию в документации по этому методу .