Quentinb
(Quentin)
1
Hi,
Is there a way to use multiple column data in a dropDownList?
This is what I have:
<?= $form->field($model, 'clients_id')->dropDownList(ArrayHelper::map(Clients::find()->all(), 'id', 'client_firstname'), ['style' => 'width:150px']) ?>
This is what I want:
<?= $form->field($model, 'clients_id')->dropDownList(ArrayHelper::map(Clients::find()->all(), 'id', 'client_firstname'.' '.'client_lastname'), ['style' => 'width:150px']) ?>
Thanks
sw3rtas
(As)
2
Yes you can do it using anonymous function or create function in model.
ArrayHelper::map(Clients::find()->all(), 'id', function ($client, $defaultValue) {
return $client->firstname . ' ' . $client->lastname;
});
To get full name is common action, so i would prefer function in model:
class Clients extends ActiveRecord {
public function getFullName() {
return $this->firstname . ' ' . $this->lastname;
}
}
ArrayHelper::map(Clients::find()->all(), 'id', 'fullName');
Btw, models should be named in singular, e.g. Client
Quentinb
(Quentin)
3
Awesome, thank you very much.