Проблемы при запуске Yii2 kartik Export Extension

0

Я новичок в Yii, и я разрабатываю приложение базы данных, которое читает таблицы из MySQL. Мне нужен был пользователь, чтобы иметь возможность экспортировать данные в формате CSV или PDF, поэтому я загрузил Kartik Yii2 Export Extension. Я не знаю, как мне настроить параметры для запуска этого расширения, я прочитал руководство, но я не понял, как исправить эту ошибку:

Недопустимая конфигурация - yii\base\InvalidConfigException Свойство query должно быть экземпляром класса, реализующего QueryInterface, например yii\db\Query или его подклассы.

Вот мой код:

Модели /industrial.php:

<?php

namespace app\models;

use yii\db\ActiveRecord;

class Industrial extends ActiveRecord
{
}

Контроллер /IndustrialController.php:

<?php

namespace app\controllers;


use yii\web\Controller;
use yii\data\Pagination;
use app\models\industrial;
use yii\data\ActiveDataProvider;

class IndustrialController extends Controller
{


public function actionIndex()
{
$dataProvider=new ActiveDataProvider('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,
]);



}
}

просмотры/индустриальный /index.php:

<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>
<h1>Industrial Companies</h1>
<ul>
<?php

use kartik\export\ExportMenu;

use kartik\grid\GridView;

$gridColumns = [
['class' => 'yii\grid\SerialColumn'],
'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]) ?>

Пожалуйста, помогите мне.

Теги:
yii2
widget
yii-extensions

3 ответа

1
Лучший ответ

в конфигурации вашего активного DataProvider

Я не вижу значения, назначенного ключевому "запросу", например, следующим образом

 $ dataProvider = new ActiveDataProvider ([ 
      'query' => Post :: find (),
      'pagination' => [
      'pageSize' => 20,
      ],
 ]);

тест со следующим

actionIndex public function ()
{
    $ dataProvider = new ActiveDataProvider ('Industrial', array (
        'query' => Industrial :: find (),
        'pagination' => array (
        'pageSize' => 20,
        ),
    ));
0

Добавьте это под компонентами в config/web.php в папку Yii2, он будет работать

'modules' => [
        'gridview' => [
            'class' => '\kartik\grid\Module',
            ],
         ],
0

Кажется, что есть код ошибки, который вы должны написать:

$ query = Industrial :: find (); 

и не

$ query = industrial :: find ();

Промышленный класс начинается с верхнего регистра

  • 0
    Спасибо, я изменил это, но это не сработало, все еще выдавая ту же ошибку!
  • 0
    Я все еще получаю ту же ошибку, пожалуйста, помогите.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню