#php #arrays #string #yii2 #widget
#php #массивы #строка #yii2 #виджет
Вопрос:
Я пытаюсь выполнить многовыбор с помощью kartik multiselect widget в yii2 в форме, в которой моя переменная $ data получает массив строк
<? $data = ArrayHelper::map(pupil::find()->all(),'pupilId','firstname'); ?>
var_dump($data) = array(6) { [1]=> string(5) "rotem" [3]=> string(3) "ttt" [6]=> string(12) "tom wininger" [7]
я сохраняю его в БД методом before save и преобразую в строку идентификаторов, но когда я пытаюсь просмотреть его в своем представлении, я получаю всех учеников, а не только выбранного
какой метод я могу написать, который будет принимать только выбранные значения и будет отображать их в моем файле просмотра, как в db, но в виде имен
Ответ №1:
У меня есть похожая вещь, поэтому я знаю, как с этим справиться, но поскольку вы не указали свои переменные и как выглядит ваш метод, я напишу какой-нибудь случайный.
Допустим, вы выполняете сброс $data
и получаете:
array(3) {
[1]=> string(5) "rotem"
[3]=> string(3) "ttt"
[6]=> string(12) "tom wininger"
}
Затем:
foreach($data as $dat) {
// Do your operators here, for example:
echo $dat.'<br>';
}
При этом каждая переменная будет выведена в новой строке:
rotem
ttt
tom wininger
Комментарии:
1. потому что мне нужна переменная, которая находится в виджете
2. будет введено в виде строки
3. @TomWininger я хотел бы получить еще несколько разъяснений: вы хотите получить этот массив из виджета или вставить в виджет?
4. я хотел сохранить несколько значений и показать их в view и index, поэтому я нашел решение для их сохранения, добавив метод before save и преобразовав массив в строку, так что теперь я получаю эту строку, если идентификатор 1,2,4,5, но я не знаю, как отображать имена вместо идентификаторов в view
5. Можете ли вы рассказать мне, что вы получаете с помощью var_dump (либо скриншот, либо форматированный код)?