6.2Laravel深入探索之帮助器方法(Helper)

URL帮助器方法

1.action()

action函数为给定的控制器操作生成一个 URL:

use App\Http\Controllers\HomeController;

$url = action([HomeController::class, 'index']);

如果该方法接受路由参数,您可以将它们作为第二个参数传递给该方法:

$url = action([UserController::class, 'profile'], ['id' => 1]);

2.asset()

asset函数使用请求的当前方案(HTTP 或 HTTPS)为资产生成一个 URL:

$url = asset('img/photo.jpg');

您可以通过ASSET_URL.env文件中设置变量来配置资产 URL 主机。如果您将资产托管在 Amazon S3 或其他 CDN 等外部服务上,这会很有用:

// ASSET_URL=http://example.com/assets

$url = asset('img/photo.jpg'); // http://example.com/assets/img/photo.jpg

3.url()

url函数为给定路径生成一个完全限定的 URL:

$url = url('user/profile');

$url = url('user/profile', [1]);

如果没有提供路径,Illuminate\Routing\UrlGenerator则返回一个实例:

$current = url()->current();

$full = url()->full();

$previous = url()->previous();

4.route()

例如,假设您的应用程序包含一个如下定义的命名路由:

Route::get('/post/{post}/comment/{comment}', function () {
    //
})->name('comment.show');

要生成此命名路由的 URL,您可以像这样使用route:

echo route('post.show', ['post' => 1]);

// http://example.com/post/1

如果路由接受参数,您可以将它们作为第二个参数传递给函数:

echo route('comment.show', ['post' => 1, 'comment' => 3]);

// http://example.com/post/1/comment/3

您经常会使用Eloquent 模型的主键生成 URL 。因此,您可以将 Eloquent 模型作为参数值传递。该route助手将自动提取模型的主键:

echo route('post.show', ['post' => $post]);

默认情况下,该route函数生成一个绝对 URL。如果你想生成一个相对 URL,你可以将false第三个参数传递给函数:

$url = route('route.name', ['id' => 1], false);

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/laravel/5528.html

发表评论

登录后才能评论