直接获取
- 获取sql的方法为
->toSql()
,例如最简单的使用
获取的结果$sql = Robot::toSql();
select * from `robots`
- 可以加上限制函数的方式获取
结果$sql = Robot::orderBy('db_order', 'desc')->toSql();
select * from `robots` order by `db_order` desc
带有参数的数据获取
- 当是使用了像where条件这种自定义条件的时候,获取的数据也许不是你想要的。如下:
$sql = Robot::whereBetween('id', [1, 10])->toSql();
结果
select * from `robots` where `id` between ? and ?
这种格式是mysql的占位符查询。
- 如果你想获取完整组装的mysql语句,可以使用laravel的
Str::replaceArray
函数,进行处理。
首先,你应该引入Str类
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
网友评论