如何使用exploion yii2

时间:2016-12-16 03:27:22

标签: php arrays yii2

任何人都可以帮我转换字符串 - >数组使用爆炸?我正在学习yii2框架。我试图建立依赖的下拉列表。

我在ajax调用的控制器中的功能

public function actionRequestApplication($ID_APPLICATION)
    {
        $output = '';
        $items = APPLICATION::findAll(['ID' => $ID_APPLICATION]);
        foreach($items as $item) {
            // $content = explode(', ', $item->CONNECTOR_PARAM);
            $content = sprintf('%s', $item->CONNECTOR_PARAM);
            $output .= \yii\helpers\Html::tag('option', $content, ['value' => $item->ID]);
        }
        return $output;
    }

如果我选择ID_APPLICATION,我的依赖下拉列表正常工作,第二个选择显示一个CONNECTOR_PARAM。在数据库CONNECTOR_PARAM字段中:

ID | NAME | CONNECTOR_PARAM 1 |因陀罗|创建,更新,阅读,删除

我想如果我选择ID_APPLICATION,第二个选择可以选择为数组。

已更新

我已经改变了我的控制器功能

public function actionRequestApplication($ID_APPLICATION)
    {
        $output = '';
        $items = APPLICATION::findAll(['ID' => $ID_APPLICATION]);
        foreach($items as $item) {
            $content = explode(', ', $item['CONNECTOR_PARAM']);
            $output .= \yii\helpers\Html::tag('option', $content, ['value' => $item->ID]);
        }
        return $output;
    }

但我得到'数组到字符串转换',如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

findAll返回与指定的主键值或一组列值匹配的活动记录模型列表。

所以项目包含符合条件的所有APPLICATION模型(activeRecord),您可以将模型内容称为$ item-> CONNECTOR_PARAM

public function actionRequestApplication($ID_APPLICATION)
    {
        $output = '';
        $items = APPLICATION::findAll(['ID' => $ID_APPLICATION]);
        foreach($items as $item) {
            $content = explode(', ', $item->CONNECTOR_PARAM);
            $output = \yii\helpers\Html::tag('option', $content, ['value' => $item->ID]);
        }
        return $output;
    }   

但你将$ content(一个数组)连接到标记帮助器(你确定吗?可能只需要一个简单的分配别名更改。= to =)

最后你不应该在列中使用逗号分隔值(需要使用explode函数来获取单个元素列表) 但要在适当的相关表格中正确标准化这些值