将数据从路径传递到控制器[Laravel]

时间:2016-07-25 13:29:23

标签: php laravel

我想将路径文件中的变量传递给指定的控制器。不使用参数,因为信息不在URL中。我无法找到使用以下代码传递它的方法。

Route::get('faqs', [
    'as' => 'thing',
    'uses' => 'Controller@method',
]);

我知道你也可以重定向到一个控制器,但错误说该方法不存在,搜索后我发现控制器必须被分配到一个路由,然后它仍然是相同的错误,但在不同的位置。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

可以通过将自定义字段添加到attributes属性来创建自定义middleware,这是可以实现的一种方法。

所以你会这样做;

$request->attributes->add(['customVariable' => 'myValue']);

答案 1 :(得分:0)

您可以使用Route :: bind为特定slug分配值

Route::bind('parameter', function($parameter)
{
    return SomeModel::where('name',$parameter)->first();
});

Route::get('faqs/{parameter}', [
    'as' => 'thing',
    'uses' => 'Controller@method',
]);

在您的控制器中将其设置为方法参数

public function method(SomeModel $model)
{
    dd($model);
}