如何在CgridView-Yii中获取cstarting

如何在CgridView-Yii中获取cstarting,yii,Yii,我怎样才能让每一行都有一个星号。我想显示当前的星号,如果用户想更新星号,他可以点击更新 我的错误是未定义的$data gridview: ... 'columns'=> ... array ( 'name' => 'star', 'type' => 'raw', 'value'=>'$this->grid->controller->widget("CStarRating", array("starC

我怎样才能让每一行都有一个星号。我想显示当前的星号,如果用户想更新星号,他可以点击更新

我的错误是未定义的$data

gridview:

...
'columns'=>
...
array (
    'name' => 'star',
    'type' => 'raw',
    'value'=>'$this->grid->controller->widget("CStarRating",
                array("starCount"=>"5",
                "minRating"=>"1",
                "maxRating"=>"5",
                "ratingStepSize"=>"1",
                "allowEmpty"=>false,
                "name"=>"rating".$data->id,
                "callback"=>"function(){
                url = "controller/action";
            jQuery.getJSON(url, {id: "$data->id", val: $(this).val()},
                        function() {
                           if (data.status !== "success"){
                                    alert("error");
                 }});}",),true)',                           
),

在我看来,你的报价太多了。变化

'value'=>'$this->grid->controller->widget("CStarRating",

试试这个:

array (
'name' => 'star',
'type' => 'raw',
'value'=>'$this->grid->controller->widget("CStarRating",
            array("starCount"=>"5",
            "minRating"=>"1",
            "maxRating"=>"5",
            "ratingStepSize"=>"1",
            "allowEmpty"=>false,
            "name"=>"rating".$data->id,
            "callback"=>"function(){
            url = "controller/action";
        jQuery.getJSON(url, {id: \'.$data->id.\', val: $(this).val()},
                    function() {
                       if (data.status !== "success"){
                                alert("error");
             }});}",),true)',                           
),

如果我添加回调,星星不会出现。。。不确定是什么问题。我的意思是,在您的应用程序中,这个错误发生在哪里?回调中的引号转义错误。回调中的所有引号都应该转义。
'value'=> function($data){
         $controller = Yii::app()->getController();
         return $controller->widget("CStarRating",
            array("starCount"=>"5",
            "minRating"=>"1",
            "maxRating"=>"5",
            "ratingStepSize"=>"1",
            "allowEmpty"=>false,
            "name"=>"rating".$data->id,
            "callback"=>'function(){
            url = "controller/action";
        jQuery.getJSON(url, {id: "'.$data->id.'", val: $(this).val()},
                    function() {
                       if (data.status !== "success"){
                                alert("error");
             }});}',),true);
         }, 
array (
'name' => 'star',
'type' => 'raw',
'value'=>'$this->grid->controller->widget("CStarRating",
            array("starCount"=>"5",
            "minRating"=>"1",
            "maxRating"=>"5",
            "ratingStepSize"=>"1",
            "allowEmpty"=>false,
            "name"=>"rating".$data->id,
            "callback"=>"function(){
            url = "controller/action";
        jQuery.getJSON(url, {id: \'.$data->id.\', val: $(this).val()},
                    function() {
                       if (data.status !== "success"){
                                alert("error");
             }});}",),true)',                           
),