Yii 1 - listData () и dropdownList () - PullRequest
0 голосов
/ 15 октября 2018

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

$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 ]

0 голосов
/ 16 октября 2018

На самом деле я решил свой запрос в его направлении

 $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) as vehicle_model ")),

Я пытаюсь добавить новую строку после (license_plate), добавив" \ n ", varchar(13) .. но это не работает ..

0 голосов
/ 15 октября 2018

Вы должны использовать 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}";
});

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

...