[英]Unknown Error in Yii Framework
我在Yii音樂商店應用程序中有這個代碼,但我不知道錯誤。 我的想法是顯示/瀏覽專輯,藝術家和流派的類別/標准。 但它總是顯示“其他條件”。 我試圖修復它,但我找不到錯誤。 代碼如下。 希望有人能解決它。 謝謝大家
<?php
class StoreController extends Controller
{
public $message;
public function actionIndex()
{
$this->message = "Hello from Store.Index()";
$this->render('index', array('content'=>$this->message));
}
public function actionBrowse()
{
if(isset($_GET["gid"])){
$gid = $_GET["gid"];
$genreCriteria = new CDbCriteria();
$genreCriteria->select = "`GenreId`, `Name`, `Description`";
$genreCriteria->condition = "genreId = " . $_GET["gid"];
$artistCriteria = new CDbCriteria();
$artistCriteria->alias = "t1";
$artistCriteria->select = "DISTINCT `t1`.`Name`, `t1`.`ArtistId`";
$artistCriteria->join = "LEFT JOIN `tbl_album` ON `tbl_album`.`ArtistId` = `t1` . `ArtistId`";
$artistCriteria->order = "`t1`.`ArtistId` ASC";
$albumCriteria = new CDbCriteria();
$albumCriteria->alias = "t2";
$albumCriteria->select = "`AlbumId`, `GenreId`, `Title`, `Price`, `AlbumArtUrl`";
$albumCriteria->condition = "`GenreId` = " . $_GET["gid"];
$albumCriteria->order = "`ArtistId` ASC";
$this->render('index', array('Albums' => Album::model()->findAll($albumCriteria),
'Artist' => Artist::model()->findAll($artistCriteria),
'Genre' => Genre::model()->findAll($artistCriteria)));
}else{
$this->message = "Hello from Store.Browse()";
$this->render('index', array('content'=>$this->message));
}
}
public function actionDetails()
{
$this->message = "Hello from Store.Details()";
$this->render('index', array('content'=>$this->message));
}
// Uncomment the following methods and override them if needed
/*
public function filters()
{
// return the filter configuration for this controller, e.g.:
return array(
'inlineFilterName',
array(
'class'=>'path.to.FilterClass',
'propertyName'=>'propertyValue',
),
);
}
public function actions()
{
// return external action classes, e.g.:
return array(
'action1'=>'path.to.ActionClass',
'action2'=>array(
'class'=>'path.to.AnotherActionClass',
'propertyName'=>'propertyValue',
),
);
}
*/
}
我很確定答案很簡單,你的頁面網址缺少“gid”及其價值。 這是“if isset”條件屬於“else”部分的唯一合理解釋。
您可以進行快速確認測試。 轉到您的瀏覽器,輸入www.yoursitename.com/store/browse?gid=111 ,然后查看它是否能獲得您需要的結果。 請記住,我不知道您的確切URL及其結構,所以它只是一個示例,但“/ browse?gid = 111 ”部分非常重要。 它簡單地為$ _POST數組創建“gid”並將其值設置為“111”。
附加說明:與“isset”一起,您還可以檢查“gid”值是否為空,有時這樣有用且更安全。
另外,這是我的Yii代碼版本:
$genreCriteria = new CDbCriteria();
$genreCriteria->select = "GenreId, Name, Description";
$genreCriteria->condition = "genreId = " . $_GET["gid"];
$artistCriteria = new CDbCriteria();
$artistCriteria->alias = "t1";
$artistCriteria->select = "DISTINCT t1.Name, t1.ArtistId";
$artistCriteria->join = "LEFT JOIN tbl_album ON tbl_album.ArtistId = t1.ArtistId";
$artistCriteria->order = "t1.ArtistId ASC";
$albumCriteria = new CDbCriteria();
$albumCriteria->alias = "t2";
$albumCriteria->select = "AlbumId, GenreI, Title, Price, AlbumArtUrl";
$albumCriteria->condition = "GenreId = " . $_GET["gid"];
$albumCriteria->order = "ArtistId ASC";
如你所見,我只是刪除了引號。 這個代碼沒有在Yii本地測試,但查詢本身 - 對我來說很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.