4

ページ内の別の関連モデルの CGridView を表示していview&id=nます。必要なリレーションはモデル ファイルに含まれており、すべて正常に動作します。唯一のことは、CButtonColumnページが開かれているモデルの適切なアクションにボタンがリンクされていることですが、関連するモデルのアクションにリンクする必要があります。

私が何を意味するのかを明確に説明するために、ここに私のコードがあります。モデルview.phpOrder:

$dataProvider=new CActiveDataProvider('OrderContents', array(
'criteria'=>array(
    'condition'=>'order_id='.$model->id,
    'with'=>array('order'),
),
'pagination'=>array(
    'pageSize'=>20,
),
));

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'orders-contents-grid',
    'dataProvider'=>$dataProvider,
    'columns'=>array(
            'id',
            'comp_name',
            'quantity',
            'comment',
            array(
                    'class'=>'CButtonColumn',
            ),
    ),
));

したがって、ボタンがモデルCButtonColumnの適切なアクションにリンクするようにしたいのですが、モデルのアクションにリンクされています。これを達成する簡単な方法はありますか?両方のAPI をチェックして、そこからインスピレーションを得られるかどうかを確認しましたが、うまくいきませんでした。OrderContentsOrderCButtonColumnCGridView

4

3 に答える 3

3

実際、URL を変更するだけであれば、カスタム ボタンを作成する必要さえありません。と CButtonColumn をviewButtonUrl見てください。updateButtonUrldeleteButtonUrl

他の回答に示されているように、URLを調整します

于 2012-06-14T15:11:58.753 に答える
2

viewButtonUrlCButtonColumnでの属性の使用例を次に示します。カスタム URL を提供する方法を理解するのは簡単ではありませんでしたが、少し苦労して最終的に取得しました。このスレッドを見るかもしれない他の人のためにそれを共有したいと思いました。URL を生成するための PHP はstringとして渡されることに注意してください。本当?:

    $this->widget('zii.widgets.grid.CGridView', array(
      'id'=>'artwork-grid',
      'dataProvider'=>$dataProvider,
      'columns'=>array(
        'id',
        'artwork_id',
        'description',
        array(
          'class'=>'CButtonColumn',
          'viewButtonUrl'=>'Yii::app()->createUrl(\'admin/artwork/\'. $data->id)',
          'updateButtonUrl'=>'Yii::app()->createUrl(\'admin/artwork/update/\'. $data->id)',
          'deleteButtonUrl'=>'Yii::app()->createUrl(\'admin/artwork/delete/\'. $data->id)',
        ),
      ),
    ));

たぶん、これを行うためのより良い方法があります。ぜひ見たいです!

于 2012-11-26T21:48:02.763 に答える
1

カスタム ボタンを作成します。

array(
       'class'=>'CButtonColumn',
       'buttons'=>array(
                        'myButton'=>array(
                             'label'=>'label of the button', //hover text
                             'imageUrl'=> 'link to an image',//icon of the button
                             'url'=>'Yii::app()->createUrl("controller/action")', //target of the button
                        ),
       'template'=>'{myButton}' //and others
     ),

完全なパラメータ リストは、ここにあります。

于 2012-06-14T11:34:31.037 に答える