好的我正在尝试使用Kartik Depdrop小部件,但是出现此错误 500(内部服务器错误)
我有父模型品牌和子模型CarModel
以下是我的文件:
CarsController.php
public function actionSubcat() {
$out = [];
if (isset($_POST['depdrop_parents'])) {
$parents = $_POST['depdrop_parents'];
if ($parents != null) {
$cat_id = $parents[0];
$out = self::getSubCatList($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'=>'']);
return;
}
}
echo Json::encode(['output'=>'', 'selected'=>'']);
}
模型 Cars.php
public function getSubCatList($cat_id)
{
$data=\common\models\CarModel::find()
->where(['brand_id'=>$cat_id])
->select(['id','name_ru AS name' ])->asArray()->all();
return $data;
}
和我的viw文件
<?php $catList = ArrayHelper::map(Brand::find()->all(),'id','name_ru'); ?>
<?= $form->field($model, 'brand_id')->dropDownList($catList,
[
'prompt' => 'Select brand',
'id'=>'brand_id-id'
]);
?>
<?=$form->field($model, 'car_model_id')->widget(DepDrop::classname(), [
'options' => ['id'=>'car_model_id-id'],
'pluginOptions'=>[
'depends'=>['brand_id-id'],
'placeholder' => 'Select...',
'url' => Url::to(['subcat'])
]
]);
?>
我的错误是什么?
答案 0 :(得分:1)
控制器内的代码
$out = self::getSubCatList($cat_id);
以下更改
$out = Cars::getSubCatList($cat_id);
并将 getSubCatList 方法定义为静态方法
public static function getSubCatList($cat_id)