Аналог DbCriteria

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
webster
Сообщения: 36
Зарегистрирован: 2011.12.17, 13:17

Аналог DbCriteria

Сообщение webster »

1. Подскажите аналог DbCriteria из yii 1.x.
2. Можно как-то получить условия запроса. Наподобие такого

Код: Выделить всё

$dbCriteria = $model->getDbCriteria(); 
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Аналог DbCriteria

Сообщение lynicidn »

нельзя, теперь надо оперировать файндаирами
webster
Сообщения: 36
Зарегистрирован: 2011.12.17, 13:17

Re: Аналог DbCriteria

Сообщение webster »

lynicidn писал(а):нельзя, теперь надо оперировать файндаирами
файндаирами - ху из ис? :D Дайте ссылку.
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Аналог DbCriteria

Сообщение lynicidn »

Код: Выделить всё

Model::findOne([
 'id' => [1,2,3] // IN (1,2,3),
 'status' => Model::STATUS_ACTIVE
]); 
Последний раз редактировалось lynicidn 2014.06.16, 15:27, всего редактировалось 1 раз.
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Аналог DbCriteria

Сообщение lynicidn »

но чтобы оперировать надо делать так

Код: Выделить всё

$model = Model::find()->andWhere(['status' => 0]);
....
if (....) {
    $model->orWhere(['deleted' => 0]);
}

$result = $model->one(); 
webster
Сообщения: 36
Зарегистрирован: 2011.12.17, 13:17

Re: Аналог DbCriteria

Сообщение webster »

Еще вопрос пользуясь случаем. Как получить сгенерированый sql запрос не лазя по логу и не выискивая его. Что-то на подобие:

Код: Выделить всё

ModelName::find()->select(['id', 'name'])->getSql(); 
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Аналог DbCriteria

Сообщение lynicidn »

так и есть вроде :) $model->sql;
http://www.yiiframework.com/doc-2.0/yii ... sql-detail
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Аналог DbCriteria

Сообщение maleks »

Код: Выделить всё

$query = ModelName::find()->select(['id', 'name']);
var_dump($query->createCommand()->rawSql); 
Ответить