【发布时间】:2018-09-06 15:36:28
【问题描述】:
我有 3 张桌子
模型网址
class Url extends Model
{
public function users(){
return $this->belongsToMany(User::class);
}
public function url_status(){
return $this->hasMany(UrlStatus::class);
}
}
模型网址状态
class UrlStatus extends Model
{
public function url()
{
return $this->belongsTo(Url::class);
}
}
模型用户
class User extends Authenticatable
{
use Notifiable, SoftDeletes, HasRoles;
public function urls(){
return $this->belongsToMany(Url::class);
}
}
在我的控制器中我正在查询:
$url = Url::with('url_status','users')->where('list_status', true)->get();
如何获取最新的 url_status?
编辑---
这是迁移文件中每个表的结构
用于网址表
Schema::create('urls', function (Blueprint $table) {
$table->increments('id');
$table->string('url');
$table->string('description');
$table->boolean('list_status');
$table->timestamps();
});
网址状态
Schema::create('url_status', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('url_id');
$table->integer('status_code');
$table->string('status');
$table->boolean('sms');
$table->boolean('email');
$table->timestamps();
});
用户表
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('contacts');
$table->string('password');
$table->rememberToken();
$table->timestamps();
$table->softDeletes();
});
【问题讨论】:
-
你说的最新是什么意思?基于什么?
id或date或 ... ? -
按列创建日期
-
首先查询多个
Url模型并附加每个模型的UrlStatus并不能真正为您提供最新的UrlStatus模型。使用latest直接查询UrlStatus并附加Url可能更有意义。那,或者先运行join,然后通过url_status.created_at, DESC订购。
标签: php laravel laravel-5 eloquent