具有laravel关系的Sql的最佳方法是什么?

时间:2016-09-23 04:25:41

标签: php laravel laravel-5 eloquent

  • 经理有一位供应商
  • 供应商有多个菜单

我的路线是这样的:

async

我已经写过这样的查询:

Route::get('vendor/{vid}/menu/{id}', 'MenuController@show');

我不知道这个写的原始Sql,但它似乎查询manay时间, 那是为了获得最佳疗效吗?

1 个答案:

答案 0 :(得分:1)

您可以简化代码,因为它等同于:

$menu = vendor::whereHas('manager', function($q) {
  $q->where('status', '>', 0);
})->findOrFail($vid)->menu()->find($id);

如果找不到给定的供应商,则对 findOrFail()的调用将返回错误。 whereHas 将确保相关经理的状态正确, find()默认会返回单个模型。