在 Laravel 中使用 Eloquent 查询连接表

Querying join tables with Eloquent in Laravel

我正在使用 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');
    }
}

这里我正在尝试为所有 inqueue 设置为 1true 的用户获取 fcmToken 我尝试使用 '$queue = Queue::with('user')->get();'其中 returns 整个数据。但未能过滤它或找到任何具有类似样本的文章。

以防万一其他人想知道,我就是这样做的。

$queue = DB::table('queues')
            ->select(
                'queues.id',
                'queues.inqueue',
                'users.fcmToken'
            )
            ->join(
                'users',
                'users.id','=','queues.user_id'
            )
            ->where(['queues.inqueue' => true])
            ->get();