URL::to 和 URL::route 在 laravel 中的区别

Difference between URL::to and URL::route in laravel

有什么区别

<a href=" {{ URL::route('/account/register') }}" >Register 1 </a>

<a href=" {{ URL::to('/account/register') }}" >Register 2 </a>

我将 routes.php 定义为

Route::get('/account/register','RegisterController@create');

当我点击 'Register 1' 时出现以下错误

Route [/account/register] not defined.

但是当我点击 'Register 2' 时,它会转到

RegisterController@create 

URL::route 将 URL 获取到命名路由。所以在你的情况下,如果你这样命名你的路线:

Route::get('/account/register', [
    'name' => 'register', 
    'uses' => 'RegisterController@create'
]);

那么你就可以使用

<a href="{{ URL::route('register') }}" >Register 1</a>

在 blade 个模板中。

Url::route 仅在您已命名路由时使用。所以如果我调用我的路由 "my route" 那么我可以这样调用它: URL::route('my route');

但是如果你想定向到一条只有目的地而没有命名的路线,那么你应该使用URL::to

首先创建命名路由

Route::get('register',function(){
  return "register page";
})->name('register');

那你就可以使用

 $url = route('register');

<a href="{{url($url)}}">Register</a>