2017-04-08 12 views
2

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'); 
    } 
} 

私は、私が使用しようとしました「=キューを$キューを::(と」1またはtrueinqueueセットを持つすべてのユーザーに対してfcmTokenを取得しようとしていますuser ') - > get();'データ全体を返します。それをフィルターにかけることができなかったか、類似したサンプルを持つ記事を見つけることができなかった。

答えて

2

他の誰かが不思議に思うような場合に備えて、これが私のやり方です。

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