Laravel 如何生成和检索不同类型的 URL 的总结
URL 生成功能是任何框架的基本功能。 Laravel 提供了多种生成 URL 的方法。下面我们就来看看吧。
辅助函数 Url
辅助函数 Url 可以生成任何 URL。如果没有指定域名,则默认使用本系统的域名。
echo url(''); //http://baidu.com
echo url('/users/get/3'); // http://localhost:8000/user/get/3
获取当前URL
获取当前URL的方法有很多种。另外,还可以获取上一页的地址。然而,这些方法之间存在一些差异。
echo url()->current();
echo url()->full();
echo url()->previous();
如果当前URL为http://www.example.com/news/1?a=b&c=d,
current可以获取当前url()方法,但无法获取字符串查询字符(即 ?a=b&c=d) 和 full 可以获得完整路径。
除了上述方法外,还可以通过laravel响应获取当前URL。
- $request->path() 该方法只能获取当前请求的路径,无法获取域名和查询字符串
- $request->url() 该方法与 url() 相同->current() 用法相同,但无法获取查询字符串
- $request->fullUrl() 该方法与 url()->full() 效果相同,可以获取完整 URL。
路由命名的URL
我们经常给路由设置一个名称。设置好之后,我们就可以使用这个名称来获取路由的URL。演示代码如下:
首先设置路由名称,代码如下:
Route::get('/news', function ()
{
})->name('news');
然后即可获取路由url:
echo route('news');
如果路由有参数,可以传给前两个参数的路由来设置路由参数。演示代码如下:
Route::get('/news/page/{page}/page_num/{pageNum}', function ()
{
})->name('news');
设置URL的代码如下:
echo route('news', ['page' => 1, 'page_num' => 15]);
控制器URL
控制器URL在项目中也经常使用。控制器 URL 使用操作函数获取。以下是示例代码:
$url = action('IndexController@index');
如果控制器方法需要路由参数,则可以通过第二个操作参数传递它们。演示代码如下:
$url = action('IndexController@index', ['id' => 1]);
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。