数据提供程序中的自定义Yii搜索
我在模型中使用了CArrayDataProvider,以查看数据是否正确。但我在搜索过程中被卡住了请告诉我该怎么做?下面是我的代码: 我在模型中写道:数据提供程序中的自定义Yii搜索,yii,Yii,我在模型中使用了CArrayDataProvider,以查看数据是否正确。但我在搜索过程中被卡住了请告诉我该怎么做?下面是我的代码: 我在模型中写道: public function search() { $containerObj = new DRackspace; $containerData = array(); $containerArr = $containerObj-&
public function search() {
$containerObj = new DRackspace;
$containerData = array();
$containerArr = $containerObj->getContainerList();
foreach ($containerArr as $cont) {
$containerData[] = $cont->name;
}
return $dataProvider = new CArrayDataProvider($containerData, array(
'id' => 'name',
'pagination' => array(
'pageSize' => Yii::app()->user->getState('pageSize', Yii::app()->params['page_size']),
),
));
}
My view code:
$this->widget('bootstrap.widgets.TbGridView', array(
'id' => 'CreateCloudContainerForm-grid',
'dataProvider' => $model->search(),
//'filter' => $model,
'emptyText' => Yii::t('b.CloudFiles', 'No Container found'),
'columns' => array(
array(
"type" => "html",`enter code here`
'name' => 'container',
"header" => Yii::t('b.cloudFiles', 'Container'),
'value' => '$data',
),
Yii 1.1:与CGridView和CArrayDataProvider一起使用过滤器
在搜索功能中:
public function searchNew() {
$criteria = new CDbCriteria;
$criteria->compare('t.status', '1');
$criteria->compare('t.role', '2');
$records =array();
$data = User::model()->findAll($criteria);
foreach ($data as $d) {
$details = array('id'=>$d->id);
$records[] = (object) $details;
}
return new CArrayDataProvider($records, array('pagination' => true));
}
public function action() {
$model = new User('searchNew');
$this->renderPartial('view', array(
'model' => $model,
)); exit;
}
'dataProvider' => $model->searchNew(),
'columns' => array(
array(
'name' => 'name',
'value' => '$data->name',
),
控制器动作:
public function searchNew() {
$criteria = new CDbCriteria;
$criteria->compare('t.status', '1');
$criteria->compare('t.role', '2');
$records =array();
$data = User::model()->findAll($criteria);
foreach ($data as $d) {
$details = array('id'=>$d->id);
$records[] = (object) $details;
}
return new CArrayDataProvider($records, array('pagination' => true));
}
public function action() {
$model = new User('searchNew');
$this->renderPartial('view', array(
'model' => $model,
)); exit;
}
'dataProvider' => $model->searchNew(),
'columns' => array(
array(
'name' => 'name',
'value' => '$data->name',
),
视图网格中:
public function searchNew() {
$criteria = new CDbCriteria;
$criteria->compare('t.status', '1');
$criteria->compare('t.role', '2');
$records =array();
$data = User::model()->findAll($criteria);
foreach ($data as $d) {
$details = array('id'=>$d->id);
$records[] = (object) $details;
}
return new CArrayDataProvider($records, array('pagination' => true));
}
public function action() {
$model = new User('searchNew');
$this->renderPartial('view', array(
'model' => $model,
)); exit;
}
'dataProvider' => $model->searchNew(),
'columns' => array(
array(
'name' => 'name',
'value' => '$data->name',
),
我认为您在TbGridView的数据提供程序中使用了错误的变量。您好,感谢您的快速回复。给定的链接非常有帮助,但当我搜索时,我已经从输入字段中丢失了搜索值。你有什么线索吗我想你把代码放在模型里了而不是控制器里了。。我想使用从模型,因为我已经发布了搜索功能,这是从我的模型。无论如何,感谢控制器的工作。