Ändern Sie die Zeilen 35 und 230 des Verzeichnisses Vendor/tothink/think-mongo/src/Builder.php. Es wurde ein offizieller Vorschlag eingereicht, ob er geändert werden soll oder nicht. Sie können ihn ändern, wenn Sie ihn selbst verwenden.
Fügen Sie zwei Fuzzy-Abfragemethoden hinzu, like_first für alle Abfragen, die mit der Abfragezeichenfolge $value beginnen, und like_last für alle Abfragen, die mit $value enden. Die Quellcodeänderungen sind wie folgt! protected $exp = ['<>' => 'ne', '=' => '=', '>' => 'gt', '>=' => 'gte', '<' => 'lt', '<=' => 'lte', 'in' => 'in', 'not in' => 'nin', 'nin' => 'nin', 'mod' => 'mod', 'exists' => 'exists', 'regex' => 'regex', 'type' => 'type', 'all' => 'all', '> time' => '> time', '< time' => '< time', 'between time' => 'between time', 'not between time' => 'not between time', 'notbetween time' => 'not between time', 'like' => 'like','like_first'=>'like_first','like_last'=>'like_last'];
} elseif ('like' == $exp) {<br>
// 模糊查询 采用正则方式<br>
$query[$key] = $value instanceof Regex ? $value : new Regex("$value", 'i');<br>
}elseif ('like_first' == $exp) { <br>
// 模糊查询 采用正则方式查询以$value开头的所有数据<br>
$query[$key] = $value instanceof Regex ? $value : new Regex("^$value", 'i');<br>
}elseif ('like_last' == $exp) {<br>
// 模糊查询 采用正则方式查询以$value结尾的所有数据<br>
$query[$key] = $value instanceof Regex ? $value : new Regex("$value$", 'i');<br>
}
Die Verwendungsmethode ist die gleiche wie bei Like. Wie folgt: where(['like',$value]); /*全局模糊查询*/<br>
where(['like_first',$value]); /*以$value开头的所有数据*/<br>
where(['like_last',$value]); /*以$value结尾的所有数据*/