2

我正在尝试在过滤模型集合的闭包中使用传递给 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);
4

2 回答 2

5

尝试一个use()子句:

return Auth::user()->sessions->filter(function($session) use( $slug)
{
    return $session->slug == $slug;
});
于 2013-06-24T14:39:44.523 回答
0

我使用的第二次尝试(而不是过滤器)没有奏效,因为我在本质上是 Fluent(查询构建器)界面上使用了 Eloquent 方法。它可以这样修复:

Auth::user()->sessions->where('slug', '=', $slug)->first();

发布此内容可能对其他人有帮助。

于 2013-06-24T14:43:14.753 回答