yii Framework моделирует объект доступа к базе данных - PullRequest
0 голосов
/ 17 августа 2011

Я хочу использовать объекты доступа к базе данных для доступа к таблице в моей базе данных вместо выполнения активной записи, поскольку загрузка занимает много времени. если вместо этого я использую объекты доступа к базе данных (вызов createCommand, запрос, выполнение и т. д.), мне все равно нужно создать класс модели для таблицы? если так, что будет родительским классом этого модельного класса? Моя цель - получить доступ к / изменить значения таблицы, используя объекты доступа к базе данных yii. Я использую YII FRAMEWORK. Или лучше использовать компонент? Если да, то когда вам обычно приходится использовать компоненты? Я не понимаю, для чего нужны компоненты ...

Ответы [ 3 ]

2 голосов
/ 17 августа 2011

Нет, вы можете создать универсальный класс, который имеет свойство-член 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();
    }
}
2 голосов
/ 18 августа 2011

Если у вас есть настройки базы данных в файле config / main.php , вы также можете сделать:

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

и, если вам необходимо сбросить команду:

$command = false;

Если вы создаете пользовательский класс, вам не нужно ссылаться на Model или расширять существующий класс, ваше соединение будет использовать CDbConnection (используя метод, описанный выше, или вызывая его непосредственно в операторе соединения).

эта страница содержит довольно четкую информацию о DAO Yii.

Что касается компонентов, они могут означать разные вещи - есть "основные компоненты" Yii, которые являются вещамикак urlManager, user, db и т. д., и их свойства по умолчанию могут быть установлены в файле config / main.php.Кроме того, существует каталог «компоненты», который можно настроить для автозагрузки классов, и « содержит компоненты (например, помощники, виджеты), которые используются только этим приложением ».Таким образом, вы можете добавлять туда настраиваемые классы, которые вы хотите использовать в своем приложении.

1 голос
/ 17 августа 2011

Компоненты используются для создания виджетов. Которые доступны через наше приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...