2015-06-10 22:30:45 91229次浏览 7条回答 4 悬赏 12 金钱

例:$data = Ship::find()->where(['company_id'=>$json->company_id]);

怎么在where条件这个里加上id>10

  • 回答于 2015-06-11 09:23 举报

    where(['>', 'id', 10])

    2 条回复
    回复于 2015-09-02 15:18 回复

    那不等于呢?

    回复于 2016-03-16 15:12 回复

    where(['<>','id',10])

    , , , 觉得很赞
  • 回答于 2015-06-11 09:24 举报

    具体请看QueryInterface ,, 里面有更详细的用法

  • 回答于 2015-06-12 09:27 举报

    $data->andWhere(['>','id',10]);

    , , , 觉得很赞
  • 回答于 2016-01-26 16:08 举报

    yii 按时间筛选怎样写where

  • 回答于 2016-04-21 11:04 举报

    这样写不行?where(['<','category','sell'])

  • 回答于 2017-03-03 17:13 举报

    多个条件灵活拼什么拼 条件个数不定 怎么拼接?尽说这种一个条件或者条件个数特定的 一群垃圾

    3 条回复
    回复于 2017-06-06 14:59 回复

    多个条件灵活拼接:
    /**

     * 条件数组
    

    ps:r如果以后有多个查询条件,只需要写这个数组就行。
    数组还支持自定义查询参数名
    写法结构为: '自定义' => ['字段名','='],
    字段名与运算符前后顺序没有过多做兼容解析

     * key(查询条件名) => value(数据存储名)
     */
    protected static $conditionFiles = [
        'orderSn' => '=',
        'orderState' => '=',
        'buyerMobile' => 'like',
    ];
    

    /**

     * 封装查询方法
     * @param $params
     * @return array|string|\yii\db\ActiveRecord[]
     */
    public function Search($params){
        $result = '';//初始查询结果为空
        $condition = $this->autoLoadSearchClass($params);
        if(count($condition)>0){
            $result = self::createSql($condition);
        }
        return $result;
    }
    
    /**
     * 生成SQL
     * @param $condition
     * @return array|\yii\db\ActiveRecord[]
     */
    private function createSql($condition){
        $query = Orders::find();
        foreach ($condition as $key=>$val){
            $query->andWhere($val);
        }
        $sql = $query->createCommand()->getRawSql();
        $result = $query->all();
        return  ['result' => $result,'sql'=>$sql];
    }
    
    /**
     * 根据查询参数匹配类
     */
    protected static $classFiles = [
        'orderSn' => 'searchOrderSn',
        'orderState' => 'searchOrderState'
    ];
    public static function getClassName($fileName){
        return self::$classFiles[$fileName];
    }
    public static function getFiles($key){
        if(isset(self::$conditionFiles[$key])){
            return self::$conditionFiles[$key];
        }else{
            return '';
        }
    }
    

    /**

     * 自动加载查询参数扩展类
     * @param $ParamsName
     * @return array|string
     */
    public function autoLoadSearchClass($ParamsName){
        if(!isset($ParamsName) || !is_array($ParamsName)){
            return '';
        }
        $condition = [];
        foreach($ParamsName['OrdersSearch'] as $key => $val) {
            $condition_array = self::getFiles($key);//检查设置$key条件属性数组
            if (empty($val) || empty($condition_array)) {
                continue;
            }
            $value = self::getFiles($key);
            if(is_array($value)){
                $operator = $value[1];//自定义参数名时使用
            }else{
                $operator = $value;
            }
            $condition[] = [$operator, $key, $val];
        }
        return $condition;
    }
    
    回复于 2017-11-28 15:53 回复

    就知道你会举这样的例子 你的条件都and??没有or 没有嵌套??例如(a=1 and (b=2 or c=3 or(d=4 and e=5 or f like '%6%'))) 来来来 你给我用框架的组合来写下?补一句 这条件并不是不变的 有可能 b=2 or c=2 这个条件不存在 你要给我写成灵活的 写不出就别bb

    回复于 2017-11-28 19:01 回复

    呵呵,你多学学吧,不要总说这个垃圾那个垃圾。你脑袋是装屎的么。
    只说一句(没时间去写)【andWhere那里可以用工厂模式处理条件,这个就能实现了】。例子给你不一定是让你拿去就直接用的。任何人也没有那么多时间给你专门写一个让你拿着就能用。你要自己动脑扩展。不动脑你脑子里装的是什么。
    看你的留言。不是说这个垃圾,就是说那个BB。都不是好听的话。我也只能污言对污语了。

  • 回答于 2017-04-06 09:59 举报

    ['and' , 'status > -1' , "userid='oyKX70CJEEKhA0IWq2mc'"]

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
长春子
见习主管

长春子

注册时间:2013-12-23
最后登录:2015-11-02
在线时长:10小时37分
  • 粉丝8
  • 金钱318
  • 威望0
  • 积分418

热门问题