Yii 1 - listData () & dropdownList ()

У меня есть этот код:

$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 ответа

Автоматический диспенсер мыльной пены от xiaomi.


На самом деле я решил, что моя просьба

 $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}";
});

Вы можете найти дополнительную информацию в документации по этому методу .


Есть идеи?

10000