0

I've Client [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 に答える