2017-01-05 6 views
0

私はyii2 KartikのGridViewコントロールから延びる新しいクラスを作成したいkartik GridViewのウィジェットクラスを拡張 - 高度なアプリケーションyii2

namespace mywidget\grid; 

use kartik\base\Config; 
use kartik\dialog\Dialog; 
use kartik\mpdf\Pdf; 
use Yii; 
use yii\base\InvalidConfigException; 
use yii\bootstrap\ButtonDropdown; 
use yii\grid\Column; 
use kartik\grid\GridView as YiiGridView; 
use yii\helpers\ArrayHelper; 
use yii\helpers\Html; 
use yii\helpers\Json; 
use yii\helpers\Url; 
use yii\web\JsExpression; 
use yii\web\View; 
use yii\widgets\Pjax; 
class GridView extends YiiGridView 
{ 

} 

問題は、私は、グリッドビューを呼び出すとき、エラー例外がスローされている:クラスが見つかりません。 。 ウィジェットクラスから継承する正しい方法があるのだろうか?

+0

この例外は 'kartik \ grid \ GridView'クラスがないことですか?または他の? – Bizley

+0

いいえ、例外は私のクラスが見つかりませんでした:use mywidget \ grid \ GridView; – soussou

+0

名前空間とパスを確認する –

答えて

0

例外が見つからなかった私のクラスについてです:それは、あなたが作業しているファイルは、あなたのプロジェクトで同じパスを持っていることを確認してくださいオートローディング問題だようuse mywidget\grid\GridView

それが聞こえますあなたが使っている名前空間。この場合にはそうではない場合は、受信しているエラーの詳細を提供し、名前空間、あなた、あなたのクラスの場合

1

を使用してください。.. mywidget\grid\GridView.phpであるか、またはあなたのファイルの場所

に一致するようにあなたの名前空間を調整する必要があります使用されていない登録されています。

最も単純ソリューションは、それがappの基本的なプロジェクトのためのYii 2に登録

  • の一つに名前空間を変更することです - ので、あなたのあなたの拡張クラスへのパスはmywidget/grid/GridView.php名前空間がapp\mywidget\grid
  • である場合高度なプロジェクトのためにそれはあなたがそこの場所のフォルダを選択し、それに応じてapp
を置き換える1に応じて commonfrontendまたは backendです

mywidget\grid名前空間の使用を主張する場合は、最初に登録する必要があります。このガイドの詳細については、Class Autoloading

+0

私はそれをcommon \ widgetsに変更し、私は名前空間を置く:namespace common \ widgets; この後、私は:共通\ウィジェット\グリッド\ GridViewを私のビューファイルに入れてください。 同じエラー – soussou

+1

あなたとは異なる名前空間を設定しています。それは '名前空間のcommon \ widgets;'と 'common \ widgets \ GridView; ** OR **'名前空間common \ widgets \ grid; 'と' common \ widgets \ grid \ GridView;を使います。 1つの追加のフォルダ 'grid'でも同様です)。 – Bizley

+0

Thannnnksたくさん、ついにそれは動作します – soussou

関連する問題