Php CGridView及相关表
我试图列出指定用户的Php CGridView及相关表,php,yii,Php,Yii,我试图列出指定用户的CGridView帖子,但给出了错误信息。这样做的正确方法是什么 Controller.php public function actionListPosts($id) { $criteria = new CDbCriteria; $criteria->with=array('posts'); $criteria->condition='t.id=:user_id'; $criteria->params=array(':use
CGridView
帖子,但给出了错误信息。这样做的正确方法是什么
Controller.php
public function actionListPosts($id)
{
$criteria = new CDbCriteria;
$criteria->with=array('posts');
$criteria->condition='t.id=:user_id';
$criteria->params=array(':user_id'=>$id);
$dataProvider=new CActiveDataProvider('Users', array(
'criteria' => $criteria
));
$this->render('list',array(
'dataProvider'=>$dataProvider,
));
}
View.php:
<?php $this->widget('zii.widgets.grid.CGridView',array(
'id'=>'events-grid',
'dataProvider'=>$dataProvider->posts,
'columns'=>array(
'id',
'name',
),
)); ?>
在控制器操作中,您可以编写--- 从这个角度来看,你可以写作---
在这里,我假设ur Posts表中的字段为(post_id,post_名称)
我希望它能在你的情况下起作用。在控制器操作中,你可以编写--- 从这个角度来看,你可以写作---
在这里,我假设ur Posts表中的字段为(post_id,post_名称)
我希望它在您的情况下有效。您必须使用
Post
模型的数据提供程序,而不是用户
模型
内部控制器
public function actionListPosts($id)
{
$criteria = new CDbCriteria;
$criteria->condition='t.user_id=:user_id';
$criteria->params=array(':user_id'=>$id);
$dataProvider=new CActiveDataProvider('Post', array(
'criteria' => $criteria
));
$this->render('list',array(
'dataProvider'=>$dataProvider,
));
}
以及
<?php $this->widget('zii.widgets.grid.CGridView',array(
'id'=>'events-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'id',
'name',
),
)); ?>
您必须使用
Post
模型的数据提供程序,而不是用户
模型
内部控制器
public function actionListPosts($id)
{
$criteria = new CDbCriteria;
$criteria->condition='t.user_id=:user_id';
$criteria->params=array(':user_id'=>$id);
$dataProvider=new CActiveDataProvider('Post', array(
'criteria' => $criteria
));
$this->render('list',array(
'dataProvider'=>$dataProvider,
));
}
以及
<?php $this->widget('zii.widgets.grid.CGridView',array(
'id'=>'events-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'id',
'name',
),
)); ?>
如果您还希望能够按此列搜索和排序,请尝试如果您还希望按此列搜索和排序,请尝试您必须将数据提供程序与post模型一起使用,不适用于用户model@dInGd0nG我不能使用这样的关系?我是否应该使用dataProvider
和Post
模型并添加$criteria->condition='t.user\u id=$id'
?这是正确的方法吗?是的。您可以通过执行以下操作缩短条件:$criteria->compare('t.user\u id',$id)代码>。该表示法将自动使用参数绑定,为您节省一个步骤。@dInGd0nG您应该添加一个答案,以便Luciana能够接受它,并且可以关闭此问题。您必须将数据提供程序与post模型一起使用,不适用于用户model@dInGd0nG我不能使用这样的关系?我是否应该使用dataProvider
和Post
模型并添加$criteria->condition='t.user\u id=$id'
?这是正确的方法吗?是的。您可以通过执行以下操作缩短条件:$criteria->compare('t.user\u id',$id)代码>。该表示法将自动使用参数绑定,为您节省一个步骤。@dInGd0nG您应该添加一个答案,以便Luciana可以接受它,并且这个问题可以结束。
<?php $this->widget('zii.widgets.grid.CGridView',array(
'id'=>'events-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'id',
'name',
),
)); ?>