Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从一个表中选择Laravel 5.1中另一个表中不存在的所有记录_Php_Mysql_Laravel 5.1 - Fatal编程技术网

Php 从一个表中选择Laravel 5.1中另一个表中不存在的所有记录

Php 从一个表中选择Laravel 5.1中另一个表中不存在的所有记录,php,mysql,laravel-5.1,Php,Mysql,Laravel 5.1,我想从Laravel 5.1中其他表中不存在的表中获取所有记录 我知道如何在核心php中实现这一点,它可以与以下代码配合使用 SELECT t1.name FROM table1 t1 LEFT JOIN table2 t2 ON t2.name = t1.name WHERE t2.name IS NULL 模型 public function audiences() { return $this->belongsTo('App\BridalRequest', 'request_i

我想从Laravel 5.1中其他表中不存在的表中获取所有记录

我知道如何在核心php中实现这一点,它可以与以下代码配合使用

SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
模型

public function audiences() 
{ 
return $this->belongsTo('App\BridalRequest', 'request_id'); 
}
但是,当我尝试在Laravel中使用以下代码执行相同操作时

$all_bridal_requests_check = \DB::table('bridal_requests')
                    ->where(function($query)
                    {
                        $query->where('publisher', '=', 'bq-quotes.sb.com')
                              ->orWhere('publisher', '=', 'bq-wd.com-bsf');
                    })
                    ->whereNotIn('id', function($query) { $query->table('audiences')->select('request_id'); })
                    ->orderBy('created_on', 'desc')
                    ->get();
然后它给了我这个错误

调用未定义的方法Illumb\Database\Query\Builder::table()


上述查询可以使用laravel query builder以以下方式构建

SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
这相当于下面使用Laravel的查询生成器生成的查询

\DB::table('table1 AS t1')
->select('t1.name')
->leftJoin('table2 AS t2','t2.name','=','t1.name')
->whereNull('t2.name')->get();

很晚了,但我想补充一下这个问题。通过在
users
model文件中编写以下代码,在表之间创建laravel雄辩的关系

public function mu_user()
{
  return $this->hasMany(\App\MainUser::class, 'id');
} 
现在从users表中获取所有记录,该表中没有与主用户相关的记录,如下所示

$users = Users::doesnthave('mu_user')->get();
$users = Author::has('mu_user')->get();
如果您想获得拥有主用户的用户,那么您可以编写如下查询:

$users = Users::doesnthave('mu_user')->get();
$users = Author::has('mu_user')->get();

这太容易了。希望有帮助

您在模型类中定义了关系吗?您能提供模型类代码吗?好的,这里是。。。公共函数访问群体(){return$this->belongsTo('App\BridalRequest',request_id');}试试这个:公共函数访问群体(){return$this->belongsTo('App\BridalRequest',request_id',id');}