2017-08-02 6 views
0

私はgoogleで多くの例をチェックしていますが、それと同じことをしますが、まだ運を得ることはできません。 すべての機能は並べ替えや改ページのように機能しますが、idフィールドのみが表示されます。ここに私の資源があります。yii2でデータが表示されないPjaxのグリッドビュー

コントローラ。

<?php 
namespace frontend\controllers; 

use Yii; 
use yii\base\InvalidParamException; 
use yii\web\BadRequestHttpException; 
use yii\web\Controller; 
use yii\filters\VerbFilter; 
use yii\filters\AccessControl; 
use frontend\models\StudentForm; 
//use frontend\models\GridData; 

use yii\data\ActiveDataProvider; 
class StudentController extends Controller 
{ 

    public function actionIndex() 
    { 
     $productsProvider = new ActiveDataProvider([ 
      'query' => StudentForm::find(), 
      'pagination' => [ 
       'pageSize' => 5, 
      ] 

     ]); 
     return $this->render('index', [ 
      // 'searchModel' => $searchModel, 
      'dataProvider' => $productsProvider, 
     ]); 
    } 
} 
?> 

モデル

<?php 
namespace frontend\models; 
use yii\base\Model; 

class StudentForm extends \yii\db\ActiveRecord 
{ 
    public $firstname; 
    public $lastname; 
    public $email; 
    public $phone; 


    public static function tableName() 
    { 
     return 'student'; 
    } 

    public function rules() 
    { 
     return [ 
      ['firstname','trim'], 
      ['firstname','required'], 
      ['lastname','trim'], 
      ['lastname','required'], 
      ['email','trim'], 
      ['email','required'], 
      ['phone','trim'], 
      ['phone','required'], 
     ]; 
    } 

    public function getAll() 
    { 
     return static::find()->indexBy('id')->all(); 
    } 

ビュー

<?php 
use yii\helpers\Html; 
use yii\grid\GridView; 
use yii\widgets\Pjax; 
?> 
<div class="php-version-index"> 
    <h1><?= Html::encode($this->title) ?></h1> 
    <h2>PHP Versions</h2> 
    <?phpPjax::begin(); ?> 
    <?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 
      'id', 
      'firstname', 
      'lastname', 
      'email', 
      [ 
       'class' => 'yii\grid\ActionColumn', 
      ] 
     ], 
    ]); ?> 
    <?php Pjax::end(); ?> 

GridViewの(not set)のように表示するだけidフィールドと他のフィールドを表示します。私を助けてください:(

答えて

1

属性取り除く:あなたのモデルから

public $firstname; 
public $lastname; 
public $email; 
public $phone; 

それらを上書きしないでください、Yii2が自動的に除去した後、テーブルからそれらを検出します - 彼らはあなたのGridViewに表示されます

+0

。。。それは作業ですが、それらがオーバーライドされているのはなぜですか? –

+1

アクティブレコード属性は、関連するテーブル列の後に大文字と小文字を区別して名前が付けられます。そのようなことを避けるための属性。 – Yupik

関連する問題