链接保持重定向到索引而不是内容

时间:2014-01-22 09:27:30

标签: php yii controller

我有这个消息传递功能,每次点击实际消息时,它都会将我发送到索引而不是消息的实际内容。

这是我的控制器代码:

    public function actionViewsent($id,$edge)
    {
        $edge = MessageEdge::model()->findByPk($edge);
        if($edge)
        {
            $main_msg = Messages::model()->findByAttributes(array('id'=>$id));

            $main_message = Messages::model()->getFullMessage($main_msg->id);

            //echo '<pre>';print_r($edge);print_r($main_msg);print_r($files);
            $this->render('viewSent',
                        array(
                            'main_message'=>$main_message,
                        )
                    );
        }
        else Yii::app()->request->redirect(Yii::app()->baseUrl);
    }

这是我的MessageEdge模型:

    public function attributeLabels()
{
    return array(
        'id' => 'ID',
        'sender_id' => 'Sender',
        'sender_name' => 'Sender Name',
        'receiver_id' => 'Receiver',
        'receiver_name' => 'Receiver Name',
        'message_id' => 'Message',
        'status' => 'Status',
    );
}

2 个答案:

答案 0 :(得分:2)

看来你检查$ edge的条件是假的,所以它转到else语句。尝试使用一些调试。

$edge = MessageEdge::model()->findByPk($edge);
CVardumper::dump($edge,9,TRUE);
Yii::app()->end();

在上面的代码中你可以转储$ edge来检查$ edge的值。所以你可以找出你的情况总是错误的问题。

更多:请检查下面的$ edge值:

if(!empty($edge) && !is_null($edge))

而不是

if($edge)

它可以确保$ edge没有任何值。

我希望它有所帮助。

答案 1 :(得分:0)

我刚刚更换了:

   if($edge)

    if(!$edge)

它工作正常。我讨厌这些错误!