当前位置:  开发笔记 > 编程语言 > 正文

如何将变量传递给Laravel 5.3中的内部函数?

如何解决《如何将变量传递给Laravel5.3中的内部函数?》经验,为你挑选了1个好方法。

我试图将语言环境数据传递给雄辩的查询,但它无法得到它.$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值传递给子查询?



1> Jeff Lambert..:

还有就是use,你可以用它来创建一个结构封闭周围的变量:

->where(function ($query) use($locale) {
    $query->where('news.language', $locale) 
          ->orWhere('news.language', 'all');
})

请参见手册 "从父作用域继承变量" 中的示例#3 .

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有