美文网首页
laravel框架获取模型构建的sql语句

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

作者: houxin | 来源:发表于2020-03-30 16:57 被阅读0次

直接获取

  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
    

带有参数的数据获取

  • 当是使用了像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

相关文章

网友评论

      本文标题:laravel框架获取模型构建的sql语句

      本文链接:https://www.haomeiwen.com/subject/ckbvuhtx.html