Code前端首页关于Code前端联系我们

Laravel 如何生成和检索不同类型的 URL 的总结

terry 2年前 (2023-09-25) 阅读数 51 #后端开发

URL 生成功能是任何框架的基本功能。 Laravel 提供了多种生成 URL 的方法。下面我们就来看看吧。

辅助函数 Url

辅助函数 Url 可以生成任何 URL。如果没有指定域名,则默认使用本系统的域名。

echo url('');  //http://baidu.comecho 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前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门