Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii2 Kartik相关下拉列表-标头已发送异常_Php_Yii2 - Fatal编程技术网

Php Yii2 Kartik相关下拉列表-标头已发送异常

Php Yii2 Kartik相关下拉列表-标头已发送异常,php,yii2,Php,Yii2,在Yii2中,我集成了Kartik Depdrop小部件。 当我使用表中的印度州和城市时,它运行良好。 但一旦我更新了同一张表格,上面有美国的州和市 dependent字段未填充,firebug响应中正确显示,但同时显示错误-已发送异常头,如: 处理另一个错误时出错: yii\web\HeadersAlreadySentException:已发送的标题 /var/www/clients/client2/web206/web/controllers/UserController.phpon 行15

在Yii2中,我集成了Kartik Depdrop小部件。 当我使用表中的印度州和城市时,它运行良好。 但一旦我更新了同一张表格,上面有美国的州和市

dependent字段未填充,firebug响应中正确显示,但同时显示错误-已发送异常头,如:

处理另一个错误时出错:
yii\web\HeadersAlreadySentException
:已发送的标题
/var/www/clients/client2/web206/web/controllers/UserController.php
on 行
159
。在里面
/var/www/clients/client2/web206/web/vendor/yiisoft/yii2/web/Response.php:366

相关代码如下所示:

public function actionSubcat() {
$out = [];
if (isset($_POST['depdrop_parents'])) {
$parents = $_POST['depdrop_parents'];
if ($parents != null) {
$cat_id = $parents[0];
$out = UserProfile::GetCity($cat_id);
// the getSubCatList function will query the database based on the
// cat_id and return an array like below:
// [
// ['id'=>'<sub-cat-id-1>', 'name'=>'<sub-cat-name1>'],
// ['id'=>'<sub-cat_id_2>', 'name'=>'<sub-cat-name2>']
// ]
echo Json::encode(['output'=>$out,'selected'=>'']); // this is line 159
    return;
 }
         }
         echo Json::encode(['output'=>'','selected'=>'']);

    }
公共函数actionSubcat(){
$out=[];
如果(isset($\u POST['depdrop\u parents'])){
$parents=$\u POST['depdrop\u parents'];
如果($parents!=null){
$cat_id=$parents[0];
$out=UserProfile::GetCity($cat\u id);
//getSubCatList函数将根据
//cat_id并返回如下数组:
// [
//['id'=>'','name'=>'',
//['id'=>'','name'=>'']
// ]
echo Json::encode(['output'=>$out,'selected'=>'');//这是第159行
返回;
}
}
echo Json::encode(['output'=>'','selected'=>'');
}
因此,我无法确定问题的原因,以及如何解决问题

在我看来,唯一的区别是,与印度的州和城市相比,数据库条目的数量更多。

echo Json::encode(['output'=>$out,'selected'=>'');//这是第159行
返回;
改为

返回Json::encode(['output'=>$out,'selected'=>'');
echo Json::encode(['output'=>$out,'selected'=>'');//这是第159行
返回;
改为

返回Json::encode(['output'=>$out,'selected'=>'');

为什么要在控制器中生成输出?听起来好像有人首先需要去阅读一些MVC基础知识。@CBroe-你可能是对的,但这是Kartik的扩展,他对Yii2有很多扩展。对于这个扩展,指南明确地这样指示。我承认我不是Yii2方面的专家,但假设有人拥有大量扩展并被社区使用,我认为这是正确的做法。-@CBroe-您能建议我如何解决这个问题吗?可能重复为什么您在控制器中生成输出?听起来好像有人首先需要去阅读一些MVC基础知识。@CBroe-你可能是对的,但这是Kartik的扩展,他对Yii2有很多扩展。对于这个扩展,指南明确地这样指示。我承认我不是Yii2方面的专家,但假设有人拥有大量扩展并被社区使用,我认为这是正确的做法。-@CBroe-你能建议我如何解决这个问题吗?可能是完美的复制品。如果你能解释一下,那就太好了。太好了。如果你能解释一下,那就太好了。