Chtml :: link反转链接的顺序

时间:2014-04-28 17:34:26

标签: yii

我真的无法理解发生了什么。 Url经理已关闭。更奇怪的是,当我将鼠标悬停在链接上时,链接路径是正确的,但是当我点击它时,inspect元素显示一个奇怪的链接顺序,我得到404错误。

  • 悬停时:index.php?r = action / controller& id = 180"

  • inspect:index.php?r = action / controller& id = 180"

  • 点击
  • :index.php?ajax = grid-id& id = 180& r = action / controller

正确的是悬停的一个。点击是完全错误和奇怪的。为什么它会获得我的网格ID?我无法理解。

如何获取网格ID并将其附加到我的网址?然后使用id然后动作/控制器?!

格:

'value'=>function($data){
if (intval($data->id) ==Yii::app()->user->id){
return CHtml::link("[X]",  array("action/controller","id"=>$data->pid),                 array('confirm' => 'Are you sure? ',                        'class'=>'stat-active'));
}
....

这与此相关吗?我在其他地方有它,它们似乎工作正常。

<?php 
Yii::app()->clientScript->registerScript('stat-active', "
    $('#grid-id a.stat-active').live('click', function() {
            $.fn.yiiGridView.update('grid-id', {
                    type: 'POST',
                    url: $(this).attr('href'),
                    success: function() {
            $.fn.yiiGridView.update('grid-id');
                    }
            });
            return false;
    });"
);

?>

[edit]全网格:

    <?php
        $this->widget ( 'bootstrap.widgets.TbGridView', array (
                    'type' => 'striped condensed',
                    'id'=>'grid-id',
                    'dataProvider' => $active,
                    'template' => '{items}{pager}',
                    'columns' => array (
        array (
                'name' => 'effective_to_date',
                'header' => 'Effective To',
        array(
                'header'=>'Notes',
                'type'=>'raw',
                'value'=>'CHtml::link(substr($data->des, 0, 70)."...",
                Yii::app()->createUrl("action/controller/details", array("id"=>$data->artid)), array("data-toggle"=>"modal","data-target"=>"#message_modal","content" => "$data->des"))',),
        array(
                'type'=>'raw',
                'value'=>function($data){
                    if (intval($data->aProd->user_id) ==Yii::app()->user->user_id()){return CHtml::link("[X]",  array("action/controller","id"=>$data->aId),array('confirm' => 'Are you sure? ','class'=>'stat-active'));
    }
else { if(intval($data->bProd->user_id) ==Yii::app()->user->user_id()){
return CHtml::link("[X]", array("action/controller","id"=>$data->bId),array('confirm' => 'Are you sure? ','class'=>'stat-active')
                );
                }
            }}
        ),
    )));?>  

<?php $this->beginWidget(
    'bootstrap.widgets.TbModal',
    array('id' => 'message_modal',
)); ?>
<script type="text/javascript">
$("a[data-toggle=modal]").click(function(){
    var target = $(this).attr('data-target');
    var url = $(this).attr('href');
    if(url){
        $(target).find(".modal-body").load(url);
    }
});

</script>
<div class="modal-header" id="messages">
    <p style="font-size: 18px">Notes</p>
</div>
<div class="modal-body" id="messages">
    <p></p>
</div>

<?php $this->endWidget();?>

1 个答案:

答案 0 :(得分:2)

您可能需要使用网址管理器。启用您的网址管理器表单config / main.php ..

'urlManager'=>array(
            'urlFormat'=>'path',
                'rules'=>array(
                    '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                    '<controller:\w+>/<action:\w+>/<id:\S+>'=>'<controller>/<action>',
                    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
                ),
        ),

这将像这样管理你的网址

index.php/controller/action/180

试试这个。我希望这会对你有所帮助

谢谢。