Ok Tôi cố gắng để sử dụng widget Kartik Depdrop, nhưng nhận được lỗi này 500 (Internal Server Error)Yii2 DepDrop Kartik
tôi có cha mẹ mô hình thương hiệu và mô hình phụ CarModel
Dưới đây là tác phẩm của tôi:
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'=>'']);
}
model 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;
}
và tập tin viw tôi
<?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'])
]
]);
?>
sai lầm của tôi là gì?
nó sẽ hữu ích nếu bạn có thể đăng bài nội bộ gì lỗi erver bạn đang có bằng cách đăng đầu ra đăng nhập Yii2 (../runtime/logs/app.log) – Manquer
in và hiển thị cho chúng tôi '$ out' và' $ _POST ['depdrop_parents'] '. –
depdrop_parents [0]: 1 1 là id mẹ của tôi và $ $ mảng (2) {[0] => mảng (2) {["id"] => chuỗi (1) "1" [ "name"] => string (3) "318"} [1] => mảng (2) {["id"] => chuỗi (1) "2" ["tên"] => chuỗi (3) " 320 "}} –