2015-04-23 13 views
6

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ì?

+1

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

+0

in và hiển thị cho chúng tôi '$ out' và' $ _POST ['depdrop_parents'] '. –

+0

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 "}} –

Trả lời

1

Các mã bên trong bộ điều khiển

$out = self::getSubCatList($cat_id); 

sự thay đổi sau

$out = Cars::getSubCatList($cat_id); 

và xác định getSubCatList phương pháp để phương pháp tĩnh

public static function getSubCatList($cat_id) 
+0

500 (Lỗi Máy chủ Nội bộ) một lần nữa ( –

+0

đặt nội dung của nhật ký tệp tại đây (** thời gian chạy/nhật ký/app.log **) – Reza1607

+0

Tôi đã thêm yii \ helpers \ Json; và nó đã hoạt động)))) cảm ơn) –