1
ロケールデータを雄弁なクエリに渡そうとしていますが、取得できません。 $locale
値はURIから取得されます。Laravel 5.3の内部関数に変数を渡す方法は?
class MyController extends Controller
{
public function index($locale = 'en')
{
$news = News::join('categories', 'categories.id', '=', 'news.catid')
->select('news.*', 'categories.category')
->where([['news.published', '1'], ['news.deleted', '0']])
->where(function ($query) {
$query->where('news.language', $locale) //$locale is not recognized naturally
->orWhere('news.language', 'all');
})
->orderBy('news.published_at', 'desc')
->take(4)
->get();
.
.
.
}
}
$locale
の値をサブクエリに渡すにはどうすればよいですか。 manualで
->where(function ($query) use($locale) {
$query->where('news.language', $locale)
->orWhere('news.language', 'all');
})
参照例#3、「親スコープから変数を継承」:
'function($ query)use($ locale){' – Clive