Yii:在视图_view中,如何添加相关网格[可排序和可搜索]?

时间:2013-01-17 14:41:22

标签: yii

我有客户[1-> N]交付

在客户的_view中,我想要与我的客户相关的交付

这是在我的ClientController

public function actionView($id)
{
    $client = $this->loadModel($id);

    $delivery_provider = new CActiveDataProvider(
      'Delivery',
      array (
          'criteria' => array ( 
              'condition' => 'client_id = :c_id',
              'params' => array (':c_id' => $client->id),
          ), // fine dei criteri
      ) // fine array di definizione cactiveprovider
    ); // fine del CActive provider

    $this->render('view',array(
        'model'=> $client,
        'delivery_provider' => $delivery_provider,
    ));
}

然后modules / admin / views / client / _view.php我添加我的CGridView。 ......但是......它不可搜索,也不可分类(但是分页有效......)

如何进行?

1 个答案:

答案 0 :(得分:1)

由于交付是一种模式,因此最好使用CActiveRecord::search()。如果您使用Gii,则会自动为您生成此方法。

要进行搜索,您必须使用$this->setAttributes($_GET['Delivery']);来捕获搜索表单/过滤器的结果,前提是您的输入的名称为Delivery[attribute_name]

public function actionView($id){
    $client = $this->loadModel($id);

    $delivery = new Delivery('search');
    if(isset($_GET['Delivery']))
        $delivery->setAttributes($_GET['Delivery']);        
    $delivery->client_id=$id;

    $this->render('view',array(
        'model'=> $client,
        'delivery_provider' => $delivery->search(),
    ));
}