我使用Laravel Eloquent进行连接查询。 这是我的模型
我的队列架构:
$table->increments('id');
$table->string('task');
$table->string('qustatus');
$table->boolean('inqueue');
$table->integer('user_id')->index();
$table->timestamps();
队列模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Queue extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
我的用户架构:
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
$table->string('fcmToken')->nullable();
用户模型:
class User extends Authenticatable
{
public function queues()
{
return $this->hasMany('App\Queue');
}
}
这里我试图为fcmToken
设置为inqueue
或1
的所有用户获取true
我曾尝试使用'$ queue = Queue :: with('user') - &gt; get();'它返回整个数据。但未能过滤它或找到任何带有类似样本的文章。
答案 0 :(得分:3)
以防万一其他人在想,这就是我做到的。
$queue = DB::table('queues')
->select(
'queues.id',
'queues.inqueue',
'users.fcmToken'
)
->join(
'users',
'users.id','=','queues.user_id'
)
->where(['queues.inqueue' => true])
->get();