【发布时间】:2017-12-20 06:19:22
【问题描述】:
我是 yii 的新手,正在努力寻找自己的出路。我已经完成了一两个教程。然后我决定开始编辑/更改示例以让我了解更多信息。我创建了一个执行简单 PING 的页面。这得到验证。成功后,它会加载一个静态页面。这一切都有效。
接下来我想做的是看看如何利用网格来填充一些数据。我现实生活中的例子是一样的。我会得到一组数据。
看来 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);"
这是我的示例代码。并不是我认为问题出在这里,而是为了展示我正在尝试做的事情:
$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
过去 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。或者如何安装扩展?或者我应该参考谁?
【问题讨论】:
-
当您使用 yii2 时,您必须使用
ArrayDataProvider而不是CArrayDataProvider,因为这是 yii 1.*