在 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
设置为 1
或 true
的用户获取 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();
我正在使用 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
设置为 1
或 true
的用户获取 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();