在Laravel中使用Eloquent查询联接表

时间:2017-04-08 16:38:27

标签: laravel eloquent laravel-eloquent

我使用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设置为inqueue1的所有用户获取true 我曾尝试使用'$ queue = Queue :: with('user') - &gt; get();'它返回整个数据。但未能过滤它或找到任何带有类似样本的文章。

1 个答案:

答案 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();
相关问题