Intereting Posts
Laravel Eloquent ORM-фильтрация с отношением Сессия Facebook – NULL после аутентификации с помощью PHP SDK Предотвращение прямого доступа к изображениям с использованием URL-адреса браузера Есть ли какая-то особая разница между intval и casting для int – `(int) X`? Программирование многоязычных PHP-приложений Исключение пользовательских данных без магических котировок подключение приложений для Android в базу данных mysql Функция PHP для получения статуса Facebook? Объединение двух элементов массива в один элемент массива в PHP Как сделать Rest Remover Password и изменить поле электронной почты пользователя в поле имени пользователя с помощью Laravel 5.0? Отображать время / дату в определенном часовом поясе с помощью функции date () Сортировка многомерного массива в алфавитном порядке Как удалить повторяющиеся значения в массиве Продолжайте получать ошибку при попытке вставить данные формы в базу данных с PDO Как назначить содержимое файла переменной в PHP

yii2: раскрывающийся список для нескольких значений concat в одной строке

для моего раскрывающегося списка я использую этот код.

<?= $form->field($medicinerequest, '[' . $id . ']' . 'medicine_name') ->DropDownList(ArrayHelper::map(\app\models\Medicine::find() ->asArray()->all(), 'id', 'medicine_name','medicine_id' ), [ 'prompt' => 'Please Select' ])?> 

Я получаю раскрывающийся список, как на картинке. Но я хочу, чтобы он был объединен дефис (-) в одной строке. Как я могу это сделать?

лекарство-запрос выпадающий

ArrayHelper::map($array, $from, $to, $group) использует ArrayHelper::getValue() для получения значений $from , $to и $group . ArrayHelper::getValue() позволяет пройти закрытие.

Подпись анонимной функции должна быть: function($array, $defaultValue) .

Таким образом, вы можете установить $to as

 ArrayHelper::map( \app\models\Medicine::find()->asArray()->all(), 'id', function($model) { return $model['medicine_name'].'-'.$model['medicine_id']; } ) 

Хорошо, я нашел решение. Я буду рад, если будет лучшее решение.

Я создал функцию в модели Medicine.php

 public function getMedicineName(){ return $this->medicine_name .'-'.$this->medicine_id; } 

а затем в артефакте заменили имя_даля на имя medicName, и теперь я получаю то, что искал.

Анонимная функция может быть

 function ($element) { return $element['medicine_name'] . '-'. $element['medicine_id']; } 

Вы можете проверить здесь !