假设我有一个具有category属性的产品模型,我想使用search()函数拉取category为空的所有此类产品。

$productSearch = clone Product::model();
$productSearch->Category = null;

$products = $productSearch->search()->getData();

通过检查生成的sql,我发现它不起作用,查询中根本没有提到category。最好的方法是什么?
如何搜索某些属性设置为空或特定值的记录

最佳答案

第一种变体:

// use search scenario, not clone model with metadata
$productSearch = new Product('search');
$productSearch->unsetAttributes();

// get CActiveDataProvider
$dataProvider = $productSearch->search();
// Add null condition
$dataProvider->criteria->addCondition('Category is null');
// Get data - first 10 rows
$products = $dataProvider->getData();

第二种变体(首选):
$products = Product::model()->findAll('Category is null');

08-27 10:42