Yii 2 - 找不到类'CArrayDataProvider'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii 2 - 找不到类'CArrayDataProvider'相关的知识,希望对你有一定的参考价值。

我是yii的新手并试图找到自己的方式。我做了一两个教程。然后我决定开始编辑/更改示例以便让我了解更多信息。我创建了一个简单的PING页面。这得到了验证。成功时,它会加载一个静态页面。这一切都有效。

我接下来要做的是看看我如何利用网格来填充一些数据。我的现实生活中的例子是一样的。我将获得一系列数据。

似乎CArrayDataProvider是我需要的。所以,我想尝试一个非常简单的例子。如果我让这个工作,我可以继续前进。

我尝试了很多例子。每次错误都是一样的。好像我没有安装CArrayDataProvider?如果这是可能的。

我做了标准的基本安装:

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

我在控制器文件的开头有以下内容:

use yii2dataArrayDataProvider;

我在这里没有错误。我在文件系统上搜索文件本身,找不到它。我找到了ArrayDataProvider,所以我试过了,结果相同:

use vendoryiisoftyii2dataArrayDataProvider;

错误是:

php Fatal Error – yiiaseErrorException
Class 'CArrayDataProvider' not found

这是第24行:

"dataProvider = new CArrayDataProvider($fruits);"

这是我的示例代码。不是我认为这个问题在这里,而是为了展示我想要做的事情:

$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"]'  
    ),  
  )  
));

在文件系统(linux)本身,我做了一个更新:

composer update

我最近两天一直在谷歌搜索,我一无所获。

我尝试添加日期选择器。那很有效。我用过:qazxsw poi

简而言之,我调用的静态页面现在显示一个DateTimePicker。

在文件的开头我添加了:

https://www.tutorialspoint.com/yii/yii_extensions.htm

并在身体:

use kartikdatetimeDateTimePicker;

如何让yii2允许我使用ArrayDataProvider。或者我如何安装扩展程序?或者我参考谁?

答案

在Yii2,没有<?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' ] ]); ?> 。使用CArrayDataProvider,如文档中所述:

ArrayDataProvider

相当好记录的$provider = new yiidataArrayDataProvider([ 'allModels' => $query->from('post')->all(), 'sort' => [ 'attributes' => ['id', 'username', 'email'], ], 'pagination' => [ 'pageSize' => 10, ], ]);

另一答案

Yii2支持here和yii 1. *支持CArrayDataProvider,因此根据您的代码使用Yii2,所以只需将以下行替换为

ArrayDataProvider

有了这个:

$dataProvider = new CArrayDataProvider($fruits);  
另一答案

感谢每个人的帮助!我现在有一个工作的例子。

如果其他人有同样的问题,我会在这里发布我的工作代码:

$dataProvider = new ArrayDataProvider($fruits);

以上是关于Yii 2 - 找不到类'CArrayDataProvider'的主要内容,如果未能解决你的问题,请参考以下文章

Yii2异常'yii db Exception',消息'找不到驱动程序'

Yii2类'kartik datetime DateTimePicker'在共享主机服务器上找不到

PHPUnit 自动加载器错误:找不到类“Yii”

Yii2 错误 - 找不到类 'yii\mongodb\ActiveRecord'

使用 yii 在 phpunit 中找不到类“CDbTestCase”错误

php yii 在数据库中找不到活动记录类“”的表“”