找不到Yii类CActiveDataProvider



我是Yii的新手,在运行小部件时收到错误"找不到class\app\controllers\CActivitDataProvider'"。

这是我的代码:

models/industry.hp:

<?php
namespace appmodels;
use yiidbActiveRecord;
class Industrial extends ActiveRecord
{
}

controllers/IndustrialController.php:

<?php
namespace appcontrollers;
use yiiwebController;
use yiidataPagination;
use appmodelsindustrial;

class IndustrialController extends Controller
{

    public function actionIndex()
    {
        $dataProvider=new CActiveDataProvider('Industrial', array(
    'pagination'=>array(
        'pageSize'=>20,
    ),
));
        $query = industrial::find();
        $pagination = new Pagination([
            'defaultPageSize' => 20,
            'totalCount' => $query->count(),
        ]);
        $industrials = $query->orderBy('Company_Name')
            ->offset($pagination->offset)
            ->limit($pagination->limit)
            ->all();


        return $this->render('index', [
            'industrials' => $industrials,
            'pagination' => $pagination,
            'dataProvider'=>$dataProvider,
        ]);

}
}

views/industry/index.php:

<?php
use yiihelpersHtml;
use yiiwidgetsLinkPager;
?>
<h1>Industrial Companies</h1>
<ul>
<?php
use kartikexportExportMenu;
use kartikgridGridView;
$gridColumns = [
    ['class' => 'yiigridSerialColumn'],
    'id',
    'name',
    [
        'attribute'=>'Name',
        'label'=>'Name',
        'vAlign'=>'middle',
        'width'=>'190px',
        'value'=>function ($model, $key, $index, $widget) { 
            return Html::a($model->Name, '#', []);
        },
        'format'=>'raw'
    ],
    'Name',
    'Location',
    'Telephone',
];
echo ExportMenu::widget([
    'dataProvider' => $dataProvider,
    'columns' => $gridColumns,
    'fontAwesome' => true,
    'dropdownOptions' => [
        'label' => 'Export All',
        'class' => 'btn btn-default'
    ]
]) . "<hr>n".
GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => $gridColumns,
    'export' => [
        'fontAwesome' => true,
    ]
]);

$array = (array) $industrials;

function build_table($array){
    // start table
    $html = '<table class="altrowstable" id="alternatecolor">';
    // header row
    $html .= '<tr>';
    foreach($array[0] as $key=>$value){
            $html .= '<th>' . $key . '</th>';
        }
    $html .= '</tr>';
    // data rows
    foreach( $array as $key=>$value){
        $html .= '<tr>';
        foreach($value as $key2=>$value2){
            $html .= '<td>' . $value2 . '</td>';
        }
        $html .= '</tr>';
    }
    // finish table and return it
    $html .= '</table>';
    return $html;
}

echo build_table($array);
?>

<?= LinkPager::widget(['pagination' => $pagination]) ?>

这里有什么问题?你能帮帮我吗?

我解决了在控制器开始时添加以下内容的问题:

use yiidataActiveDataProvider;

我认为您的问题是由您使用的名称空间引起的,Yii 1.1没有使用名称空间。因为您将名称空间声明为app/controllers,所以在该名称空间中查找CActiveDataProvider,而不是在全局名称空间中;具体来说,它在app/controllers目录中查找类文件。

要解决此问题,请尝试将该类引用为CActiveDataProvider,使其使用Yii的自动加载器查找该类。

相关内容

  • 没有找到相关文章

最新更新