Aut*_*a_z 0 laravel eloquent laravel-5
我有模型存储和控制:
class Store extends Model{
    protected $fillable = ['code', 'name', 'country_id', 'active'];
    public function controls(){
        return $this->hasMany('App\Control');
    }
}
class Control extends Model{
    protected $fillable = ['store_id', 'user_id', 'saved_at'];
    public function store(){
        return $this->belongsTo('App\Store');
    }
}
Run Code Online (Sandbox Code Playgroud)
现在我想获得 5 个商店,其中没有控件或控件是所有控件中最旧的(created_at)。
我怎样才能用雄辩的方式创造这个条件?我知道如何使用 Joins 实现它,但我希望它使用“漂亮的代码”。
像 :D
\App\Store::with('controls')->whereNotNull('controls.created_at')->orderBy('controls.created_at', 'desc')->take(5)->get();
Run Code Online (Sandbox Code Playgroud)
    我没有尝试过这些,但我认为两者都应该有效:
    \App\Store::whereHas('controls', function ($query) {
        $query->whereNotNull('created_at');
        $query->orderBy('created_at', 'desc');
    })->take(5)->get();
    \App\Store::with(['controls' => function ($query) {
        $query->whereNotNull('created_at');
        $query->orderBy('created_at', 'desc');
    }])->take(5)->get();
Run Code Online (Sandbox Code Playgroud)
使用调试栏查看哪个更快。