Yii: объекты и классы как результат выборки
12 февраля 2011
Предложение возвращать объекты вместо массивов при использовании построителя запросов или DAO нам сразу понравилось. Сегодня у меня дошли руки до реализации и в SVN появилась данная возможность в несколько расширенном варианте.
$sql='SELECT * FROM posts LIMIT 1'; $command=$this->_connection->createCommand($sql); $command->setFetchMode(PDO::FETCH_OBJ); $post = $command->queryRow(); echo $post->title;
Параметры setFetchMode
принимает идентично одноимённому методу PDO, тем самым позволяя, например, получать строки в виде новых объектов, экземпляров указанного класса или наполнять существующие объекты.
Комментарии RSS по email OK
Хм, экземпляры класс StdObject ? Или можно, например, AR-объекты получить ?
О, спасибо
Может вынести setFetchMode куда нибудь в настройки, чтоб на уровне приложения можно было настроить?
Было бы проще удобней или дополнительный метод $command->queryObj(); чем лезть из модели в кишки PDO. Если передается строка - PDO::FETCH_CLASS, если объект - PDO::FETCH_INTO. Вообще странно что в yii об этом задумались только сейчас.
прошу прощения, "проще и удобней иметь дополнительный метод"
Кстати, для AR нужно использовать $command->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, CLASS); Ибо просто с PDO::FETCH_CLASS объект не заполняется
Интересная статья, надо бы попрактиковаться