流明:如何从路由传递参数到控制器

时间:2015-07-08 03:00:57

标签: laravel lumen

从我的路线我需要将$ page的值传递给控制器​​

路线:

$app->get('/show/{page}', function($page) use ($app) {

  $controller = $app->make('App\Http\Controllers\PageController');
  return $controller->index();

});

控制器:

public static function index(){

  /** how can I get the value of $page form here so i can pass it to the view **/

  return view('index')->with('page', $page);

}

2 个答案:

答案 0 :(得分:5)

您可以将其作为索引函数的参数传递。

<强>路线

$app->get('/show/{page}', function($page) use ($app) {
    $controller = $app->make('App\Http\Controllers\PageController');
    return $controller->index( $page );
});

虽然路线看起来不对我,但通常你会在开始时定义没有正斜杠的路线:$app->get('show/{page}', ...

<强>控制器

public static function index($page)
{
    return view('index')->with('page', $page);
}

除非有使用闭包的原因,否则您的路由可以重写如下,{$page}变量将自动作为参数传递给控制器​​方法:

<强>路线

$app->get('show/{page}', [
    'uses' => 'App\Http\Controllers\PageController@index'
]);

答案 1 :(得分:0)

在我的情况下,显示指定的用户,它几乎是相同的情况

路线档案(web.php)

Route::get('user/{id}/show', ['as'=> 'show', 'uses'=>'UserController@show']);
  

我还在使用门面

查看文件(users.blade.php)

href="{{route('show', ['id' => $user->id])}}"

只是将数组传递给路由名称

中的最后一个

控制器文件(UserController.php)

public function show($id)
    {
        $user = User::findorfail($id)->first();
        return view('user', compact('user'));
    }

已经完成了