【发布时间】:2016-11-16 02:06:01
【问题描述】:
当我单击 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]);
}
}
在 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]);
}
}
【问题讨论】:
-
不清楚你需要什么......使用actionView......你想查看id = 0的用户表单吗? .. 或者您想要一个带有您的用户列表的gridview .. 就像您在index.php 中一样?试着更好地解释你想要做什么..
-
当点击gridview中的项目时,我想在另一个视图中显示一条记录
-
好吧..我已经为此发布了答案..
-
U 可以使用 yii1 gii 生成器生成基本的 CRUD 操作。