0

私は Yii の初心者で、CGridView ウィジェットを理解しようとしています。

まず、これらのコードをすべて理解します:

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        "url",
        "allowRedirect",
        array(
            "name"=>"Kod",
            "value"=>array($model, "returnHTTPCode"),
            "type"=>"html"
            ),
        array(
            "class"=>"CButtonColumn",
            "template"=>"{update} {delete}",
            ),

        ),
));

ここで、削除ボタンの URL をに変更したいと思いますhttp://domain.com/?r=pano/deleteSiteドキュメントには、deleteButtonUrl プロパティがあり、それを使用しようとしています。

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        "url",
        "allowRedirect",
        array(
            "name"=>"Kod",
            "value"=>array($model, "returnHTTPCode"),
            "type"=>"html"
            ),
        array(
            "class"=>"CButtonColumn",
            "template"=>"{update} {delete}",
            "deleteButtonUrl"=>"deleteSite"            
            ),

        ),
));

しかし、私はUse of undefined constant deleteSite - assumed 'deleteSite'エラーが発生しました。

そして、buttonsCButtonColumnのプロパティを使用しようとしました。

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        "url",
        "allowRedirect",
        array(
            "name"=>"Kod",
            "value"=>array($model, "returnHTTPCode"),
            "type"=>"html"
            ),
        array(
            "class"=>"CButtonColumn",
            "template"=>"{update} {delete}",
            "buttons"=>array(
                "delete"=>array(
                            "url"=>"http://localhost/sitelerimacikmi/index.php?r=panos"
                            )
                ),

            ),

        ),
));

同じエラーが発生しました。

CButtonColumn のプロパティを使用するにはどうすればよいですか?

英語は私の母国語ではないので、できれば簡単な文法を使用してください

4

2 に答える 2

1

あなたは使用しようとすることができます:

$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
    "url",
    "allowRedirect",
    array(
        "name"=>"Kod",
        "value"=>array($model, "returnHTTPCode"),
        "type"=>"html"
        ),
    array(
        "class"=>"CButtonColumn",
        "template"=>"{update} {delete}",
        "deleteButtonUrl" => "Yii::app()->createUrl('pano/deleteSite')" // <- changes here
        ),

    ),
));

また、次の記事を読むこともできます: http://www.yiiframework.com/wiki/106/using-cbuttoncolumn-to-customize-buttons-in-cgridview/

于 2012-11-02T22:55:20.643 に答える
0

URL を指定する必要がある場合は、PHP 式として指定する必要があります。CButtonColumnクラスで削除URLのデフォルト値を定義する方法は次のとおりです。

public $deleteButtonUrl = 'Yii::app()->controller->createUrl(
    "delete",array("id"=>$data->primaryKey)
)';

この URL は、php eval 関数を使用して評価されます。この式$dataでは、レンダリングされている現在のモデルです。

以下を使用する必要があります。

$this->widget('zii.widgets.grid.CGridView', array(
    ...
    'columns'=>array(
        ...
        array(
            'class'=>'CButtonColumn',
            'deleteButtonUrl' => 'Yii::app()->controller->createUrl(
                "pano/deleteSite", array("id" => $data->primaryKey)
            )',
        ),
    ),
);
于 2012-11-02T22:55:49.310 に答える