第一种使用url方法来生成地址
在应用其他地方引用路由的最简单的方式就是通过定义路由的第一个路径参数,你可以在视图中通过辅助函数 url() 来引用指定路由,该函数会为传入路径加上完整的域名前缀,所以 url(’/’) 对应的输出是 http://blog.test。你可以在视图文件中这么使用:
<a href="{{ url('/') }}">
同样也可以直接使用路由中的路径来写例如
<a href="{{ url('/pre_loading') }}">
第二种使用route方法来生成路由
此外,Laravel 还允许你为每个路由命名,这样一来,不必显式引用路径 URL 就可以对路由进行引用,这样做的好处是你可以为一些复杂的路由路径定义一个简单的路由名称从而简化对路由的引用,另一个更大的好处是即使你调整了路由路径(在复杂应用中可能很常见),只要路由名称不变,那么就无需修改前端视图代码,提高了系统的可维护性。
路由命名很简单,只需在原来路由定义的基础上以方法链的形式新增一个 name 方法调用即可:
Route::get('user/{id?}', function ($id = 1) {
return "用户ID: " . $id;
})->name('user.profile');
也可以使用数组的方式,例如:
Route::get('/pre_loading', ['as'=>'common.pre_loading', 'uses'=>'Share\CommonController@pre_loading']);
前端视图模板中可以通过辅助函数 route 并传入路由名称(如果有路由参数,则以数组方式作为第二个参数传入)来引用该路由:
<a href="{{ route('user.profile', ['id' => 100]) }}">
// 输出:http://blog.test/user/100
如果没有路由参数,通过 route(‘user.profile’) 引用即可。此外,我们还可以简化对路由参数的传递,比如上例可以简化为:
<a href="{{ route('user.profile', [100]) }}">
这样调用的话,数组中的参数顺序必须与定义路由时的参数顺序保持一致,而使用关联数组的方式传递参数则没有这样的约束。
最后一种
只用action来直接绑定控制来生成地址
例如
<a href="{{ action('MemberController@urltest', ['id' => 1]) }}">
这种方式也必须定义路由,一般不推荐这么写。