2014-12-01 2 views
0

Работы с Yii Framework 2.0 Я попытался извлечь данные из моих таблиц реляционных баз данных после документации здесь http://www.yiiframework.com/doc-2.0/guide-db-active-record.htmlфреймворка параметр 2,0 пропуска нетерпеливых загрузок таблицы реляционной базы данных

Ниже приведен пример кода в разделе Ленивого и жадная загрузка ,

$customers = Customer::find()->limit(100)->with([ 
    'orders' => function($query) { 
     $query->andWhere('subtotal>100'); 
    }, 
])->all(); 

В моем случае я хочу передать параметр методу andWhere() следующим образом.

$param = 'something flexible'; 
$customers = Customer::find()->limit(100)->with([ 
    'orders' => function($query) { 
     $query->andWhere('subtotal > ' . $param); 
    }, 
])->all(); 

Это не работает. Что мне не хватает или как передать параметр из первой строки в метод andWhere()?

ответ

1

Я нашел решение следующим образом.

$param = 'something flexible'; 
$customers = Customer::find()->limit(100)->with([ 
    'orders' => function($query) use($param) { 
     $query->andWhere('subtotal > ' . $param); 
    }, 
])->all(); 
+1

Пожалуйста, не создавайте такие запросы. [andWhere()] (http://www.yiiframework.com/doc-2.0/yii-db-query.html#andWhere%28%29-detail) позволяет вам иметь '$ param' привязанный и сбежавший для вас, как this: '-> andWhere ('subtotal>: param', [': param' => $ param])'. См. Также: http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html#where – DaSourcerer

Смежные вопросы