如何在Yii2中从一条记录中进行下拉
是否可以在Yii2中从一行两列表中进行下拉,如下所示: 我想要如何在Yii2中从一条记录中进行下拉,yii2,Yii2,是否可以在Yii2中从一行两列表中进行下拉,如下所示: 我想要下拉列表如下: 您还没有提供下拉列表中使用的型号的任何详细信息,因此我将用电话型号演示该示例,字段为id,电话,地区代码,仅供理解 这是电话表的数据: +----+-------------+-----------+ | id | phone | area_code | +----+-------------+-----------+ | 1 | 03214442021 | 021 | | 2 | 032
下拉列表
如下:
您还没有提供下拉列表中使用的型号的任何详细信息,因此我将用
电话型号演示该示例,字段为id
,电话,地区代码,仅供理解
这是电话
表的数据:
+----+-------------+-----------+
| id | phone | area_code |
+----+-------------+-----------+
| 1 | 03214442021 | 021 |
| 2 | 03214452520 | 051 |
+----+-------------+-----------+
现在,如果您要从数据库中选择一行,并尝试在下拉列表中的单行中列出所有列
,则可以使用数组过滤器
将所有属性
过滤到一个数组中,然后将该数组分配给下拉列表
选项
虽然如果要从表中选择所有行,可以使用相同的方法并在foreach
中使用array\u filter
,但不同之处在于下拉列表的布局
选择单行时,您将获得如下下拉列表:
如果从表中选择所有行,则下拉列表如下所示:
Array(
[1]=>1,
[03214442021]=>03214442021 ,
[021]=>021
)
在控制器中,您可以执行以下操作:
public function actionPhone($id){
$model = Phone::findOne($id);
$rows=\yii\helpers\ArrayHelper::map(array_filter($model->attributes),function($item){
return $item;
},function($item){
return $item;
});
return $this->render('drop-down', ['rows' => $rows]);
}
单列
对于多行
对于以上两种情况,视图部分保持不变,在您要创建下拉列表的视图中,将行指定给选项
您可以使用yii\helpers\Html
或ActiveForm
构建下拉列表
<?= yii\helpers\Html::dropDownList('my-options',null,$rows) ?>
因此,将您的操作更改为以下内容:
public function actionPhone($id){
$model = Phone::findOne($id);
$rows=\yii\helpers\ArrayHelper::map(array_filter($model->attributes),function($item){
return $item;
},function($item){
return $item;
});
return $this->render('drop-down', ['rows' => $rows]);
}
您尚未提供您在下拉列表中使用的型号的任何详细信息,因此我将用电话型号演示该示例,字段为id
,电话,区号
,仅供理解
这是电话
表的数据:
+----+-------------+-----------+
| id | phone | area_code |
+----+-------------+-----------+
| 1 | 03214442021 | 021 |
| 2 | 03214452520 | 051 |
+----+-------------+-----------+
现在,如果您要从数据库中选择一行,并尝试在下拉列表中的单行中列出所有列
,则可以使用数组过滤器
将所有属性
过滤到一个数组中,然后将该数组分配给下拉列表
选项
虽然如果要从表中选择所有行,可以使用相同的方法并在foreach
中使用array\u filter
,但不同之处在于下拉列表的布局
选择单行时,您将获得如下下拉列表:
如果从表中选择所有行,则下拉列表如下所示:
Array(
[1]=>1,
[03214442021]=>03214442021 ,
[021]=>021
)
在控制器中,您可以执行以下操作:
public function actionPhone($id){
$model = Phone::findOne($id);
$rows=\yii\helpers\ArrayHelper::map(array_filter($model->attributes),function($item){
return $item;
},function($item){
return $item;
});
return $this->render('drop-down', ['rows' => $rows]);
}
单列
对于多行
对于以上两种情况,视图部分保持不变,在您要创建下拉列表的视图中,将行指定给选项
您可以使用yii\helpers\Html
或ActiveForm
构建下拉列表
<?= yii\helpers\Html::dropDownList('my-options',null,$rows) ?>
因此,将您的操作更改为以下内容:
public function actionPhone($id){
$model = Phone::findOne($id);
$rows=\yii\helpers\ArrayHelper::map(array_filter($model->attributes),function($item){
return $item;
},function($item){
return $item;
});
return $this->render('drop-down', ['rows' => $rows]);
}
你能显示这个下拉列表的源数据吗?你是从数据库表中选择一行来创建下拉列表吗?@rob006,我只是在我的图像中创建下拉列表来简化我的问题,Value\u column\u 1 Value\u column\u 2
@MuhammadOmerAslam,是的,请看下面的答案我发布了你能显示这个下拉列表的源数据吗?你是从数据库表中选择一行来创建下拉列表吗?@rob006,我只是在我的图像中创建下拉列表来简化我的问题,Value\u column\u 1 Value\u column\u 2
@MuhammadOmerAslam,是的,请参阅下面的答案我发布了感谢您的回复,但是如果我想要,下拉选项值如何也是列的值?请参阅Edit
part@eniac05谢谢您的回复,但是如果我想要下拉选项值如何也是列的值?请参阅Edit
part@eniac05