Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用命名路由构建url?_Php_Laravel 5.1_Laravelcollective - Fatal编程技术网

Php 如何使用命名路由构建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

我正在尝试使用命名路由生成url链接。例如,我有
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 ])