我正在尝试使用一个参数,该参数在过滤模型集合的闭包中传递给Laravel 4中的资源控制器操作,但是我得到以下错误:
Undefined variable: slug
如何将$slug
参数从路径传递到集合过滤器闭包?
public function show($slug)
{
return Auth::user()->sessions->filter(function($session)
{
return $session->slug == $slug;
});
}
我想要实现的是返回与给定slug匹配的用户的会话。我尝试过这样的事情无济于事:
Auth::user()->sessions->whereSlug($slug);
答案 0 :(得分:5)
尝试use()
子句:
return Auth::user()->sessions->filter(function($session) use( $slug)
{
return $session->slug == $slug;
});
答案 1 :(得分:0)
我使用的第二次尝试(而不是过滤器)不起作用,因为我在基本上是Fluent(查询构建器)接口上使用Eloquent方法。它可以这样修复:
Auth::user()->sessions->where('slug', '=', $slug)->first();
发布此内容可能对其他人有所帮助。