2016-11-05 10 views
1

Как отображать gridview на основе текущего имени пользователя по индексу? Например, войдите в систему A и заполните форму и выйдите из системы. При регистрации другого студента данные, которые были заполнены учеником А, не будут отображаться.Отображение сетки в зависимости от входа пользователя в yii2

В GridView

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

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

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

На контроллере

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

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

В модели

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

Если вам нужно retrive информацию Образование, связанную с идентификатором пользователя и предполагая, что в модели образования это отношение основано на поле user_id, которое вы могли бы использовать Yii::$app->user->identity->id

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

..It все еще не удается. Я получил эту ошибку. Свойство «query» должно быть экземпляром класса, который реализует QueryInterface, например. yii \ db \ Query или его подклассы. Является ли в модели образования мне нужно поставить user_id? Я все еще путаю. @scaisEdge – Fyp16

+0

У меня есть ответ на этот вопрос. В конечном итоге обновите сообщение и добавьте код модели обучения, а также код контроллера/действия, связанный с вами. qquestion – scaisEdge

+0

Я редактировал свой пост, а также прилагаю часть учебной модели. Как я могу исправить часть модели? @scaisEdge – Fyp16