我有这个消息传递功能,每次点击实际消息时,它都会将我发送到索引而不是消息的实际内容。
这是我的控制器代码:
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',
);
}
答案 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)
它工作正常。我讨厌这些错误!