Php 如何在Laravel 5.3中将变量传递到内部函数?
我试图将区域设置数据传递给雄辩的查询,但它无法获得它Php 如何在Laravel 5.3中将变量传递到内部函数?,php,function,laravel,eloquent,Php,Function,Laravel,Eloquent,我试图将区域设置数据传递给雄辩的查询,但它无法获得它$locale值取自URI class MyController extends Controller { public function index($locale = 'en') { $news = News::join('categories', 'categories.id', '=', 'news.catid') ->select('news.*', 'categorie
$locale
值取自URI
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
值传递到子查询中?有一个use
构造,您可以使用该构造在变量周围创建闭包:
->where(function ($query) use($locale) {
$query->where('news.language', $locale)
->orWhere('news.language', 'all');
})
参见“从父范围继承变量”中的示例3。有一个
use
结构,可用于围绕变量创建闭包:
->where(function ($query) use($locale) {
$query->where('news.language', $locale)
->orWhere('news.language', 'all');
})
请参阅“从父范围继承变量”中的示例3。
函数($query)使用($locale){
函数($query)使用($locale){
非常好。事实上,我不知道如何命名我的问题以便进行谷歌搜索。谢谢。非常好。事实上,我不知道如何命名我的问题以便进行谷歌搜索。谢谢。