Laravel 5.4:使用参数从控制器调用路由功能

Ajm*_*eel 0 php routes laravel laravel-5

我想从控制器中使用一些参数调用路由功能。

这是我的控制器

public function myFunction($id, $name)
{
    $id = 1;
    $name = 'john';

    return redirect()->route('details/' . $id . '/' . $name);
}
Run Code Online (Sandbox Code Playgroud)

这是我的路线

Route::get('details/{id}/{name}',['uses' =>'My_controller@myFunction']);
Run Code Online (Sandbox Code Playgroud)

这是我运行脚本时遇到的错误。

InvalidArgumentException in UrlGenerator.php line 304:

Route [details/1/john] not defined.
Run Code Online (Sandbox Code Playgroud)

请帮忙

小智 5

route() 助手需要您传递路由名称和参数:

function route($name, $parameters = [], $absolute = true)
{
    return app('url')->route($name, $parameters, $absolute);
}
Run Code Online (Sandbox Code Playgroud)

因此,您需要给您的路线起一个名字:

Route::get('details/{id}/{name}',['uses' =>'My_controller@myFunction'])->name('details');
Run Code Online (Sandbox Code Playgroud)

..然后可以在数组中传递参数:

return redirect()->route('details', array('id' => $id, 'name' => $name));
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助

  • 删除我的答案,你击败了我几秒钟:) (2认同)