Laravel - 如何在匿名函数里面传递请求数据
So I want to get all items if the user hasn't selected any options, otherwise query the items according to the request data. However I can't pass the $request
to my function. Here is my code:
public function showProducts(Request $request)
{
$products = Product::all();
if(count($request->all()) != 0) {
$products = Product::where(function($query) {
$minPrice = $request['min'] ? $request['min'] : null;
$maxPrice = $request['max'] ? $request['max'] : null;
$colors = $request['color'] ? $request['color'] : null;
$sizes = $request['size'] ? $request['size'] : null;
if($minPrice != null && $maxPrice != null) {
$query->where('price', '>=', $minPrice)->where('price', '<=', $maxPrice);
}
if($minPrice == null && $maxPrice == null && $colors == null && $sizes == null) {
}
})->get();
}
}
Obviously I have $request in my showProducts closure however I can't access it inside my anonymous function inside where
. How can I use my $request data in the anonymous function?
因此,如果用户未选择任何选项,我想获取所有项目,否则根据 请求数据。 但是我无法将 显然我的请求中有$ owProducts关闭但是我无法在 $ request code>传递给我的函数。 这是我的代码: p>
public function showProducts(Request $ request)
{
$ products = Product :: all();
if(count($ request) - &gt; all())!= 0){
$ products = Product :: where(function($ query){
$ minPrice = $ request ['min']?$ request ['min']:null ;
$ maxPrice = $ request ['max']?$ request ['max']:null;
$ colors = $ request ['color']?$ request ['color']:null;
$ sizes = $ request ['size']?$ request ['size']:null;
if if($ minPrice!= null&amp;&amp; $ maxPrice!= null){
$ query-&gt; where ('price','&gt; =',$ minPrice) - &gt; where('price','&lt; =',$ maxPrice);
}
if($ minPrice == null&amp;&amp; ; $ maxPrice == null&amp;&amp; $ colors == null&amp;&amp; $ sizes == null){
}
}) - &gt; get();
}
}
code> pre>
where code>里面的匿名函数中访问它。 如何在匿名函数中使用我的$ request数据? p>
div>
You need to use the use
keyword to pass in parameters from the parent scope:
$products = Product::where(function($query) use ($request) {
// $request is now available
Now $request
is available in your closure.
See here: http://php.net/manual/en/functions.anonymous.php#example-200