laravel框架获取模型构建的sql语句

2020-03-30  本文已影响0人  houxin

直接获取

  1. 获取sql的方法为->toSql(),例如最简单的使用
    $sql = Robot::toSql();
    
    获取的结果
    select * from `robots`
    
  2. 可以加上限制函数的方式获取
    $sql = Robot::orderBy('db_order', 'desc')->toSql();
    
    结果
    select * from `robots` order by `db_order` desc
    

带有参数的数据获取

$sql = Robot::whereBetween('id', [1, 10])->toSql();

结果

select * from `robots` where `id` between ? and ?

这种格式是mysql的占位符查询。

use Illuminate\Support\Str;

然后像下面这样处理就行了

$between = [1, 10];
$baseSql = Robot::whereBetween('id', $between)->toSql();
$sql = Str::replaceArray('?', $between, $baseSql);

结果如下

select * from `robots` where `id` between 1 and 10
上一篇 下一篇

猜你喜欢

热点阅读