2016-11-05 14 views
1

現在のユーザログインに基づいてインデックスにグリッドビューを表示するにはどうすればよいですか?たとえば、学生Aがログインしてフォームに記入し、ログアウトします。他の生徒のログイン時に、生徒Aが入力したデータは表示されません。モデルyii2のユーザログインに基づいてグリッドビューを表示

class Education extends ActiveRecord implements IdentityInterface 
    { 

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


public function rules() 
{ 
    return [ 
     [['year', 'fieldstudy', 'institute', 'grade'], 'required'], 
     [['user_id'], 'integer'], 
     [['year', 'fieldstudy', 'institute', 'grade'], 'string', 'max' => 255], 
    ]; 
} 


public function attributeLabels() 
{ 
    return [ 
     'education_id' => 'Education ID', 
     'student_id' => 'Student ID', 
     'year' => 'Year', 
     'fieldstudy' => 'Fieldstudy', 
     'institute' => 'Institute', 
     'grade' => 'Grade', 
    ]; 
} 

public function getId($id) 
{ 
    return static::find(['user_id' => $id]); 

} 

答えて

0

でコントローラ

 public function actionIndex() 
{ 
    $dataProvider = new ActiveDataProvider([ 
     'query' => Education::find()-> 
       where(['user_id' => Yii::$app->user->identity->id ]), 
    ]); 
    ]); 

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

でGridViewの

 <?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 

     'education_id', 
     'year', 
     'fieldstudy', 
     'institute', 
     'grade', 

     ['class' => 'yii\grid\ActionColumn'], 
    ], 
]); ?>  

ユーザーIDに関連していると仮定教育情報をretrive必要がある場合は教育モデルでこの関係は使用可能なフィールドuser_idに基づいていますYii::$app->user->identity->id

$dataProvider = new ActiveDataProvider([ 
    'query' => Education::find()-> 
        where(['user_id' => Yii::$app->user->identity->id ]), 
]); 
+0

..それでも失敗します。私はこのエラーがある。 「クエリ」プロパティは、例えばQueryInterfaceを実装するクラスのインスタンスでなければならない。 yii \ db \ Queryまたはそのサブクラス。私はuser_idを置く必要が教育モデルですか?私はまだ混乱します。 @scaisEdge – Fyp16

+0

私は答えを更新しました..最終的にあなたの投稿を更新し、教育モデルコードとあなたに関連するコントローラ/アクションコードを追加します – scaisEdge

+0

私の投稿と添付の教育モデルパーツを編集しました。モデルパーツでどうやって修正できますか? @scaisEdge – Fyp16

関連する問題