我的用户类中有一个范围查询,如此(User.php
):
public function scopeDeleteUsersWithId($query, $userIds)
{
return $query->whereNotIn('id', $userIds)->toSql();
}
我从一个集合中获取$userIds
,该集合返回id
个数组。这是我的收集方法(ImportUsers.php
):
private function getUsersToDelete()
{
return $this->employeeList->pluck('id')->unique()->flatten()->toArray();
}
这是我调用getUsersToDelete
方法以便让用户删除(ImportUsers.php
)的地方。
private function deleteTerminatedEmployees()
{
$usersToDelete = $this->getUsersToDelete();
dd(User::deleteUsersWithId($usersToDelete));
}
正如您所看到的,我正在转储SQL,以便我可以看到查询,因为它不起作用。当我转储查询时,我得到了这个:
但是,当我dd($userIds)
toSql()
之前的行时,就像这样(User.php
):
public function scopeDeleteUsersWithId($query, $userIds)
{
dd($userIds);
// return $query->whereNotIn('id', $userIds)->toSql();
}
我得到了我正在寻找的数组:
我花了很多时间试图解决这个问题而不能。任何想法都将不胜感激。
答案 0 :(得分:1)
您可以使用DB::listen
。这是文档DB::listen
DB::listen(function ($query) {
var_dump($query->sql);
var_dump($query->bindings);
var_dump($query->time);
});
您还可以在scotch.io
找到详细信息我希望这对你有所帮助。