足球投注最好的网站:日期条件解析bug

浏览:78 发布日期:2018/09/03
<足球外围网 id="eb7db7ce4f5ecb846"> <足球外围网 id="ea0cb5324242b850e">
5.0.0 - 致命 - 未处理
在使用关联模型的情况下,where条件中有被关联表的日期条件,就会报错。经过几个小时的查找,终于找到问题在那了,日期条件解析方法里面没有进行关联表的检查。
足球外围网php/library/足球外围网/db/Builder.php
原始代码:/**
     * 日期时间条件解析
     * @access protected
     * @param  Query     $query        查询对象
     * @param  string    $value
     * @param  string    $key
     * @param  array     $options
     * @param  string    $bindName
     * @param  integer   $bindType
     * @return string
     */
    protected function parseDateTime(Query $query, $value, $key, $bindName = null, $bindType = null)
    {
        $options = $query->getOptions();

        // 获取时间字段类型
        if (strpos($key, '.')) {
            list($table, $key) = explode('.', $key);

            if (isset($options['alias']) && $pos = array_search($table, $options['alias'])) {
                $table = $pos;
            }
        } else {
            $table = $options['table'];
        }
修改之后:/**
     * 日期时间条件解析
     * @access protected
     * @param string    $value
     * @param string    $key
     * @param array     $options
     * @param string    $bindName
     * @param integer   $bindType
     * @return string
     */
    protected function parseDateTime($value, $key, $options = [], $bindName = null, $bindType = null)
    {
        // 获取时间字段类型
        if (strpos($key, '.')) {
            list($table, $key) = explode('.', $key);
            if (isset($options['alias']) && $pos = array_search($table, $options['alias'])) {
                $table = $pos;
            }else if(isset($options['join'])){
                //检索关联表
                foreach ($options['join'] as $o_join_val){
                    if($pos = array_search($table, $o_join_val[0])){
                        $table = $pos;
                        break;
                    }
                }
            }
        } else {
            $table = $options['table'];
        }
<足球外围网 id="ad196de4c105c1d8be">
<足球外围网 id="ad6b7d22ed07ed248d">
评论(
后面还有条评论,点击查看>>
<足球外围网 id="e997c2acdc76d56ad">