Ссылки на бозоры
http://geektimes.ru/company/lamptest/blog/269398/
https://geektimes.ru/company/lamptest/blog/267132/
http://geektimes.ru/company/lamptest/blog/269398/
https://geektimes.ru/company/lamptest/blog/267132/
$a = $expr1 ? $expr2 : $expr3;
Если $expr1 истинно, результатом $a станет $expr2, иначе $expr3.$expr2.
$a = $expr1 ?: $expr3;
Это равносильно записи:
$a = $expr1 ? $expr1 : $expr3;
Примеры:
$a = true ?: false; // true
$a = false ?: true; // true
$a = 1 ?: 2; // 1
$a = 0 ?: 2; // 2
В мануале об этом упоминается очень сухо и коротко. Ну а что еще добавить?DropDownList в фильтре для поля можно использовать следующее.1.
[
'attribute' => 'attribute_name',
'value' => 'attribute_value',
'filter' => Html::activeDropDownList($searchModel,
'attribute_name',
ArrayHelper::map(ModelName::find()->asArray()->all(), 'ID', 'Name'),
['class'=>'form-control',
'prompt' => 'Select Category']),
],
2.
[
'attribute'=>'attribute name',
'filter'=>array("ID1"=>"Name1","ID2"=>"Name2"),
],
3.
[
'attribute'=>'attribute name',
'filter'=>ArrayHelper::map(Model::find()->asArray()->all(), 'ID', 'Name'),
],
каждый из этих методов хорошо работает и тут как удобнее тот и нужно выбирать.