Php 如何使用命名路由构建url?
我正在尝试使用命名路由生成url链接。例如,我有Php 如何使用命名路由构建url?,php,laravel-5.1,laravelcollective,Php,Laravel 5.1,Laravelcollective,我正在尝试使用命名路由生成url链接。例如,我有http://myapp.com/{token}。但是,我已经使用了很多与route有关的函数,但结果是http://myapp.com?token而不是http://myapp.com/token 我能做什么 生成好的url的唯一方法是使用函数url,而不使用url名称。例如:url('/reset',[$token])。但在本例中,我没有使用我想要使用的路线名称 真正的问题: 我有一条这样的路线: // Password reset route
http://myapp.com/{token}
。但是,我已经使用了很多与route有关的函数,但结果是http://myapp.com?token
而不是http://myapp.com/token
我能做什么
生成好的url的唯一方法是使用函数url
,而不使用url名称。例如:url('/reset',[$token])
。但在本例中,我没有使用我想要使用的路线名称
真正的问题:
我有一条这样的路线:
// Password reset routes...
Route::get('reset/{token}', [
'as' => 'password.reset',
'uses' => 'Auth\PasswordController@getReset'
]);
刀片模板:
<a href="{{ url( '/reset', [$token]) }}">Click here to reset your password</a>
<br>
<a href="{{ url( route('password.reset', $token)) }}">Click here to reset your password</a>
<br>
{!! link_to_route('password.reset', 'Click here to reset your password', $token) !!}
<br>
<a href="{{ route('password.reset', $token) }}">Click here to reset your password</a>
{!!链接到路由('password.reset','Click here to reset your password',$token)
结果是:
<a href="https://laravel51.app2/reset/72a560d23a1bf17eec336d07c169bd4c02d25e24ae3581977b4fa4aa4f4e3252">Click here to reset your password</a>
<br>
<a href="https://laravel51.app2/reset?72a560d23a1bf17eec336d07c169bd4c02d25e24ae3581977b4fa4aa4f4e3252">Click here to reset your password</a>
<br>
<a href="https://laravel51.app2/reset?72a560d23a1bf17eec336d07c169bd4c02d25e24ae3581977b4fa4aa4f4e3252">Click here to reset your password</a>
<br>
<a href="https://laravel51.app2/reset?72a560d23a1bf17eec336d07c169bd4c02d25e24ae3581977b4fa4aa4f4e3252">Click here to reset your password</a>
是您需要根据文档编写的内容,
route()
的第二个参数应该是数组<代码>路由('password.reset',['token'=>$token])我注意到我有两条不同的路由,具有相同的别名。那是我的问题。在我重命名路由后,该函数运行良好。路由('password.reset',['token'=>$token])//密码重置路由。。。路由::get('reset/{token}',['as'=>'password.reset','uses'=>'Auth\PasswordController@getReset' ]); 路由::post('reset',['作为'=>'密码。reset_post','使用'=>'身份验证\PasswordController@postReset' ]);我试过了,但没有成功,因为它只是将令牌添加为url的变量。。。。。。所以你现在在路线上使用了不同的别名?成功了?是的,我只需要这么做。问题是我有两条同名的不同路线。
route('password.reset', [ 'token' => $token ])