Jump to content

Raafat

New Members
  • Posts

    2
  • Joined

  • Last visited

Raafat's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. 1down votefavorite I'm new to Yii, and I'm getting this error "Class 'app\controllers\CActiveDataProvider' not found" while running a widget. This is my code: models/industrial.php: <?php namespace app\models; use yii\db\ActiveRecord; class Industrial extends ActiveRecord { } controllers/IndustrialController.php: <?php namespace app\controllers; use yii\web\Controller; use yii\data\Pagination; use app\models\industrial; 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/industrial/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]) ?> I'm getting this error in IndustrialController at $dataProvider=new CActiveDataProvider('Industrial', array( 'pagination'=>array( 'pageSize'=>20, ), )); What is the problem here? Could you please help me?
  2. I am developing a database application using Yii Framework. I am reading tables from MySQL database and displaying them to the user. I need the user to be able to filter the fields in the table or search for a certain value. For example, I have a table named "supermarkets": CREATE TABLE IF NOT EXISTS `supermarkets` ( `name` varchar(71) NOT NULL, `location` varchar(191) DEFAULT NULL, `telephone` varchar(68) DEFAULT NULL, `fax` varchar(29) DEFAULT NULL, `website` varchar(24) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; .../model/supermarkets: <?php namespace app\models; use yii\db\ActiveRecord; class Supermarkets extends ActiveRecord { } .../views/supermarkets/index.php: <?php use yii\helpers\Html; use yii\widgets\LinkPager; ?> <h1>Supermarkets</h1> <ul> <?php $array = (array) $supermarkets; 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); ?> ....Controllers/SupermarketsController: <?php namespace app\controllers; use yii\web\Controller; use yii\data\Pagination; use app\models\Supermarkets; class SupermarketsController extends Controller { public function actionIndex() { $query = supermarkets::find(); $pagination = new Pagination([ 'defaultPageSize' => 20, 'totalCount' => $query->count(), ]); $supermarkets = $query->orderBy('Name') ->offset($pagination->offset) ->limit($pagination->limit) ->all(); return $this->render('index', [ 'supermarkets' => $supermarkets, 'pagination' => $pagination, ]); } } I need the user to be able to filter the table or search its fields by one or more attribute. I'm using Yii2, so CDbcriteria doesn't work. How can I do this?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.