简体   繁体   English

Laravel查询生成器不使用get方法中的变量

[英]Laravel query builder not using variable from get method

I have this function in one of my controller. 我在我的一个控制器中有这个功能。

public function tourList($country, $category)
{
    $tour = Tour::whereHas('country', function($q) {
                    $q->where('name','=', $country);
                })
                ->whereHas('category', function($r) {
                    $r->where('name','=', $category);
                })
                ->get();

    return view('tour-list.blade.php')->withTour('$tour');
}

Though have passed two variables from get method. 虽然已经从get方法传递了两个变量。 But i am getting error of 但我得到的错误

Undefined variable: country

You are missing use in anonymous function so your query willl be as: 您在匿名函数中缺少use ,因此您的查询将如下所示:

$tour = Tour::whereHas('country', function($q) use($country) {
                $q->where('name','=', $country);
            })
            ->whereHas('category', function($r) use($category) {
                $r->where('name','=', $category);
            })
            ->get();

Docs 文件

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM