2017-12-20 7 views
0

私はyiiで新しく、自分の道を見つけようとしています。私はチュートリアルまたは2つを行った。私はその後、私がもっと学べるように例を編集/変更し始めました。私は単純なPINGを行うページを作成しました。それは検証されます。成功すると、静的ページがロードされます。これはすべて動作します。Yii 2 - クラス 'CArrayDataProvider'が見つかりません

私が次に何をしたいのは、グリッドを利用してデータを入力する方法です。私の実際の人生の例は同じです。私は入ってくるデータの配列を取得します。

私はCArrayDataProviderが必要なようです。ですから、私は非常に簡単な例を得ようとしています。私がこれを働かせたら、私は上に行くことができます。

私はたくさんの例を試しました。エラーは毎回同じです。私はCArrayDataProviderをインストールしていないようですか?それが可能であれば。

私は、標準インストールの基本をした:

composer create-project --prefer-dist yiisoft/yii2-app-basic basic 

私は私のコントローラファイルの先頭に次き:

use yii2\data\ArrayDataProvider; 

私はここにはエラーを取得していません。 ファイルシステム上のファイル自体を検索しましたが見つかりませんでした。私はArrayDataProviderを見つけたので、私はそれ、同じ結果を試みた:

use vendor\yiisoft\yii2\data\ArrayDataProvider; 

エラーは次のとおりです。

PHP Fatal Error – yii\base\ErrorException 
Class 'CArrayDataProvider' not found 

これは、24行目です:

"dataProvider = new CArrayDataProvider($fruits);" 

はここに私のコード例です。私は、問題はここにあると思いますが、私が何をしようとしています何を表示しないこと:ファイル・システム(Linux)の自体に

$fruits = array( 
    array('id' => 1, 'name'=>'apple', 'color' => 'green'), 
    array('id' => 2, 'name'=>'orange', 'color' => 'orange'), 
    array('id' => 3, 'name'=>'banana', 'color' => 'yellow'), 
    array('id' => 4, 'name'=>'pineapple', 'color' => 'brown') 
); 

$dataProvider = new CArrayDataProvider($fruits); 

$this->widget('zii.widgets.grid.CGridView', array( 
    'id' => 'fruits-grid', 
    'dataProvider' => $dataProvider , 
    'columns' => array( 
    array( 
     'name' => 'ID', 
     'value' => '$data["id"]', 
    ), 
    array( 
     'name' => 'Name', 
     'value' => '$data["name"]' 
    ), 
    array( 
     'name' => 'Color', 
     'value' => '$data["color"]' 
    ), 
) 
)); 

私が更新しました:

composer update 

を私は持っています最後の2日間はグーグルであり、私は何も見つけ出していません。

日付ピケットを追加しようとしました。それはうまくいった。私は以下を使用しました: https://www.tutorialspoint.com/yii/yii_extensions.htm

つまり、私が呼び出す静的なページには、DateTimePickerが表示されます。

use kartik\datetime\DateTimePicker; 

、体内の:私は追加したファイルの開始時に

<?php 
    echo DateTimePicker::widget([ 
    'name' => 'dp_1', 
    'type' => DateTimePicker::TYPE_INPUT, 
    'value' => '23-Feb-1982 10:10', 
    'pluginOptions' => [ 
     'autoclose'=>true, 
     'format' => 'dd-M-yyyy hh:ii' 
    ] 
    ]); 
?> 

私はyii2は私がArrayDataProviderを使用できるようにするために取得するにはどうすればよいです。または、どのように拡張機能をインストールしますか?または私はそれを誰が参照するのですか?

+1

あなたは、これはYiiの1であるとして、あなたが代わりにCArrayDataProvider' 'の' ArrayDataProvider'を使用する必要がありますyii2使用しているよう。 * – pravindot17

答えて

1

CArrayDataProviderありません。ドキュメントに記述のように、ArrayDataProviderを使用します。

$provider = new yii\data\ArrayDataProvider([ 
    'allModels' => $query->from('post')->all(), 
    'sort' => [ 
     'attributes' => ['id', 'username', 'email'], 
    ], 
    'pagination' => [ 
     'pageSize' => 10, 
    ], 
]); 

はかなりよくhereを記録しました。

+0

こんにちは。今、私はこのエラーが発生します:不明なプロパティ - yii \ base \ UnknownPropertyException 未知のプロパティを設定します。yii \ data \ ArrayDataProvider :: 0 – Vissie

+0

ドキュメントを開き、 '$ fruits'変数で何を提供すべきかを確認します。それは本当に良い文書化されて... – Yupik

0

Yii2は、ArrayDataProviderおよびyii1をサポートする。* CArrayDataProviderあなたがYii2を使用しているあなたのコードごとに、これだけこれにより

$dataProvider = new CArrayDataProvider($fruits); 

して以下の行を置き換えるよう、サポートしています。Yii2で

$dataProvider = new ArrayDataProvider($fruits); 
+0

「同じ」エラー。私は "PHP致命的なエラー - yii \ base \ ErrorException"を取得します。 クラス 'ArrayDataProvider'が見つかりません "。私のコントローラファイルでは、yii2 \ data \ ArrayDataProviderを使用してみました。 ベンダー\ yiisoft \ yii2 \ data \ ArrayDataProvider;を使用します。まだ同じエラー。 – Vissie

0

誰もが助けてくれる!私は今実用的な例を持っています。

他の誰が同じ問題を持っている場合は、私はここに私の作業コードを掲載します:

use kartik\grid\GridView; 


$resultData = [ 
array("id"=>1,"name"=>"Cyrus","email"=>"[email protected]"), 
array("id"=>2,"name"=>"Justin","email"=>"[email protected]"), 
array("id"=>3,"name"=>"Mason","email"=>"[email protected]"), 
array("id"=>4,"name"=>"Fulton","email"=>"[email protected]"), 
array("id"=>5,"name"=>"Neville","email"=>"[email protected]"), 
array("id"=>6,"name"=>"Jasper","email"=>"[email protected]"), 
array("id"=>7,"name"=>"Neville","email"=>"[email protected]"), 
array("id"=>8,"name"=>"Neville","email"=>"[email protected]"), 
array("id"=>9,"name"=>"Ronan","email"=>"[email protected]"), 
array("id"=>10,"name"=>"Raphael","email"=>"[email protected]"),  
]; 


$dataProvider = new \yii\data\ArrayDataProvider([ 
    'key'=>'id', 
    'allModels' => $resultData, 
    'sort' => [ 
     'attributes' => ['id', 'name', 'email'], 
    ], 
]); 


echo GridView::widget([ 
    'dataProvider' => $dataProvider, 

    'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 
     'id', 

     [ 
     'attribute' => 'name', 
     'value' => 'name', 
     ], 
     [ 
     "attribute" => "email", 
     'value' => 'email', 
     ] 

    ] 
]); 
関連する問題