2011-08-17 2 views
0

로드하는 데 오랜 시간이 걸리기 때문에 활성 레코드를 수행하는 대신 데이터베이스 액세스 개체를 사용하여 데이터베이스의 테이블에 액세스하려고합니다. 대신 (createCommand, query, execute 등을 호출하는) 데이터베이스 액세스 객체를 사용한다면, 여전히 테이블에 대한 모델 클래스를 생성해야합니까? 그렇다면이 모델 클래스의 부모 클래스는 무엇입니까? 내 목표는 액세스/yii 데이터베이스 액세스 개체를 사용하여 테이블 값을 편집 할 수 있습니다. 저는 YII FRAMEWORK을 사용하고 있습니다. 또는 구성 요소를 사용하는 것이 가장 좋습니다. 그렇다면 일반적으로 언제 구성 요소를 사용해야합니까? 나는 어떤 구성 요소가 있는지 이해하지 못한다 ....yii 프레임 워크 모델 데이터베이스 액세스 개체

답변

2

아니요, CDbConnection의 멤버 속성이있는 일반 클래스를 만들 수 있습니다. 그 문제에 관해서는 CDbConnection을 사용할 수는 있지만 그렇게하면 많은 연결을 만들 수 있습니다.

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

을하고 명령을 다시 설정해야하는 경우 :

class Foo 
{ 
    private $conn; 

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

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

어디에서이 수업을 들으시겠습니까? models 디렉토리 안에 있습니까? –

1

구성 요소는 응용 프로그램을 통해 사용할 수있는 위젯을 만드는 데 사용됩니다.

2

당신이 당신의 config/main.php 파일에 데이터베이스 설정이있는 경우, 당신은 또한 할 수

$command = false; 

을 당신은을 작성하는 경우 사용자 지정 클래스를 사용하는 경우 Model을 참조하거나 기존 클래스를 확장 할 필요가 없으면 연결에 CDbConnection이 사용됩니다 (위의 메서드를 사용하거나 연결 문의 직접 호출).

this page에는 Yii의 DAO에 대한 명확한 정보가 있습니다.

구성 요소가가는 한 그들은 다른 것들을 의미 할 수 있습니다 - Yii의 "핵심 구성 요소"는 urlManager, user, db 등과 같은 것들이며 config/main.php에 설정된 기본 속성을 가질 수 있습니다 파일. 클래스를 자동로드하도록 구성 할 수있는 'components'디렉토리가 있으며 에는이 애플리케이션에서만 사용하는 구성 요소 (예 : 도우미, 위젯)가 포함되어 있습니다.. " 따라서 앱 전체에 맞춤 수업을 제공 할 수 있습니다.

관련 문제