当我点击gridview项目时,我想从gridview中显示不同的记录。现在,当我点击项目时,我有这个网址: http://localhost/test/basic/site/0
我将actionView添加到我的控制器来处理它,但不知道该怎么做。在我的gridview记录中,数字从0开始,但在db中,我只有3,4,5条记录。我怎么能处理这个? 我在控制器中的方法:
public function actionIndex()
{
if(Yii::$app->user->isGuest)
{
return $this->redirect(['login']);
}
else
{
$dataProvider = new SqlDataProvider([
'sql' => 'SELECT p.id,p.user_id,p.post_title,p.post_text,u.name ' .
'FROM Posts p '.
'INNER JOIN User u ' .
'ON p.user_id = u.id'
]);
return $this->render('index',['dataProvider'=>$dataProvider]);
}
}
in actionIndex我显示索引页面,其中包含我的数据库中的所有记录。 我有另一种方法必须处理点击项目。现在它就像actionIndex一样。
public function actionView($id)
{
if(Yii::$app->user->isGuest)
{
return $this->redirect(['login']);
}
else
{
$dataProvider = new SqlDataProvider([
'sql' => 'SELECT p.id,p.user_id,p.post_title,p.post_text,u.name ' .
'FROM Posts p '.
'INNER JOIN User u ' .
'ON p.user_id = u.id'
]);
return $this->render('index',['dataProvider'=>$dataProvider]);
}
}
答案 0 :(得分:0)
有时,actionView用于显示与单个实例相关的valaue
public function actionView($id)
{
$model => User::findModel($id);
return $this->render('view', [
'model' => $model,
]);
}
并在views / your_controller / view.php
中<div class="my-model-view">
<h3>My Title</h3>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'your_column1',
'your_column1',
......
],
]) ?>
其中your_column1,....是$ model
中属性的名称