2011-08-17 62 views
0

我想使用數據庫訪問對象來訪問我的數據庫中的表,而不是做活動記錄,因爲這需要很長時間才能加載。如果我使用數據庫訪問objets(調用createCommand,query,execute等),是否還需要爲表創建模型類?如果是的話,這個模型類的父類是什麼?我的目標是使用yii數據庫訪問對象訪問/編輯表值。我正在使用YII FRAMEWORK。或者最好使用組件?如果是這樣,你通常什麼時候需要使用組件?我不明白哪些組件適用於....yii框架模型數據庫訪問對象

回答

2

不,您可以創建一個具有CDbConnection成員屬性的泛型類。對於這個問題,你可以使用CDbConnection,但是你最終可能會以這種方式創建很多連接。

class Foo 
{ 
    private $conn; 

    function __construct(){ $this->conn = 
          new CDbConnection($dsn,$username,$password); } 

    function runQuery($sql) { 
     $command=$connection->createCommand($sqlStatement); 
     return $command->query(); 
    } 
} 
+0

我在哪裏可以上這門課?模型目錄裏面? –

1

組件用於製作widgets.which可在整個應用程序中使用。

2

如果您在config/main.php文件中有你的數據庫設置,你也可以這樣做:

$command = Yii::app()->db->createCommand($sql); 
$result = $command->queryAll(); 

,如果你需要重置命令:

$command = false; 

如果創建自定義類,您不需要引用模型或擴展現有類,則連接將使用CDbConnection(通過使用上述方法或直接在連接語句中調用它)。

this page在Yii的DAO上有非常清晰的信息。

只要組件去,它們可能意味着不同的東西 - 有Yii的「核心組件」,它們是像urlManager,用戶,數據庫等,並可以在config/main.php中設置其默認屬性文件。然後是可以配置爲自動加載類的「組件」目錄,並且「包含僅由該應用程序使用的組件(例如助手,小部件)」。因此,您可以將自定義類放在您希望在整個應用程序中可用的位置。