我試圖使用命名路線生成一個url鏈接。例如,我有http://myapp.com/{token}
。但是,我一直在使用路由的功能很多,但我得到的結果是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\[email protected]'
]);
刀片模板:
<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>
結果是:
<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()'的第二個參數應該是一個數組。 'route('password.reset',['token'=> $ token])' – ceejayoz
我可以注意到我有兩個具有相同別名的不同路由。那是我的問題。在我重命名路線後,該功能運行良好。 route('password.reset',['token'=> $ token]) // Password reset routes ... Route :: get('reset/{token}',[ 'as'=' >'password.reset', 'uses'=>'Auth \ PasswordController @ getReset' ]); Route :: post('reset',[ 'as'=>'password.reset_post', 'uses'=>'Auth \ PasswordController @ postReset' ]); – juanmiguel431