任何人都可以帮我转换字符串 - >数组使用爆炸?我正在学习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;
}
但我得到'数组到字符串转换',如何解决这个问题?
答案 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函数来获取单个元素列表) 但要在适当的相关表格中正确标准化这些值