php - Yii2 如何将范围传递给搜索模型

标签 php model yii2

我需要在一个范围内搜索一个字段。如何将介于或大于/小于语句应用于搜索模型。

类似的东西。但是,这些属性在搜索模型中无效

$params['MlsSearch']['min_price'] = 10;
$params['MlsSearch']['max_price'] = 100;

$searchModel = new ModelSearch();
$dataProvider = $searchModel->search($params);

最佳答案

1) 在模型中定义属性。

class ModelSearch extends Model
{
     public $min_price;
     public $max_price;

    /*....*/
}

2) 使属性安全

public function rules()
{
    return [
         /*... */
         [['min_price', 'max_price', ], 'safe'],
    ]
}

3)修改搜索功能

public function search($params)
{
    /*... */
    $query->andFilterWhere(['>', 'price', $this->min_price]);
    $query->andFilterWhere(['<', 'price', $this->max_price]);
    /*... */
}

关于php - Yii2 如何将范围传递给搜索模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25317568/

相关文章:

PHP - 注册表显示没有错误,但不保存在数据库中

php - Yii2。表单获取输入 ID

yii2 - Codeception 添加自定义断言操作(功能测试)

Yii2 在创建和更新场景中使用不同的表单字段

php - 需要从多组列表中获得最佳总和组合的算法(逻辑)

PHP在2个远程服务器之间传输数据,最快的方法是什么?

php - 在包含 PHP 变量的 HTML 字符串中转义引号的正确方法

ruby-on-rails - 创建记录时出错 : nil object instead of array?

database - Django 模型过滤器

带有子字段的 Extjs 模型字段