mysql - 在 laravel 6.0 中使用 BelongsToMany 方法时,sql 查询是什么样子的?

标签 mysql sql laravel

在laravel 6.0中使用belongsToMany方法时,sql查询是什么样的?

例如,我们数据库中有三个表:users、roles、role_user。

users
+----+-------+-----------------+-------------------+----------+----------------+------------+------------+
| id | name  | email           | email_verified_at | password | remember_token | created_at | updated_at |
+----+-------+-----------------+-------------------+----------+----------------+------------+------------+
|  1 | admin | admin@gmail.com | NULL              | admin    | NULL           | NULL       | NULL       |
|  2 | user1 | user1@gmail.com | NULL              | user1    | NULL           | NULL       | NULL       |
|  3 | user2 | user2@gmail.com | NULL              | user2    | NULL           | NULL       | NULL       |
+----+-------+-----------------+-------------------+----------+----------------+------------+------------+
roles
+----+---------+-------------+------------+------------+
| id | name    | description | created_at | updated_at |
+----+---------+-------------+------------+------------+
|  1 | admin   | NULL        | NULL       | NULL       |
|  2 | user    | NULL        | NULL       | NULL       |
|  3 | editor  | NULL        | NULL       | NULL       |
|  4 | manager | NULL        | NULL       | NULL       |
+----+---------+-------------+------------+------------+
role_user
+---------+---------+------------+------------+
| role_id | user_id | created_at | updated_at |
+---------+---------+------------+------------+
|       1 |       1 | NULL       | NULL       |
|       2 |       2 | NULL       | NULL       |
|       3 |       3 | NULL       | NULL       |
|       4 |       3 | NULL       | NULL       |
+---------+---------+------------+------------+

Im model User

public function roles()
    {
        return $this->belongsToMany('App\Role');
    }

使用 $this->belongsToMany('App\Role'); 时,sql 查询是什么样子的? laravel 6.0 中的方法?

最佳答案

Laravel 可以轻松地告诉你这一点。

$user->roles()->toSql();

为了获得更全面的体验,您可以记录所有查询。请参阅此 stackoverflow post了解更多。

DB::connection()->enableQueryLog();
$queries = DB::getQueryLog();

关于mysql - 在 laravel 6.0 中使用 BelongsToMany 方法时,sql 查询是什么样子的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57871315/

相关文章:

mysql - 如何查找一段时间内的SQL数据库条目

php - Mysql join 或 php in_array() 哪个更适合优化 Mysql 查询?

php - mysql连接错误问题

mysql - SQL预备语句

Laravel 5.8 - 保存加密的用户电子邮件

PHP MySQL max() 函数产生 5

mysql - Visual Studio 表中日期之间的 SQL 查询

java - 将日期从 JDateChooser 插入到 MySql 数据库

php - laravel 从数据库中获取 microtime

PHP 动态类名 laravel