0

我有客户 [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。...但是...它不可搜索且不可排序(但分页有效...)

如何进行 ?

4

1 回答 1

1

由于 Delivery 是一种模型,因此最好使用该模型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(),
    ));
}
于 2013-01-17T19:05:40.523 回答