laravel-working-group/laravel-route-macros

Route 门面上的宏集合,提供有用的快捷方式

1.0.1 2023-08-21 15:39 UTC

This package is auto-updated.

Last update: 2024-09-21 18:05:28 UTC


README

Route 门面 添加新的方法和快捷方式

安装

通过 composer 安装

composer require laravel-working-group/laravel-route-macros

方法

viewWithBindings

类似于 Route::view('/uri', 'view', $data),但像 隐式模型绑定 一样预先将路由参数绑定到数据

Route::viewWithBindings('/user/{user}', 'view', bindings: [ 'user' => \App\Models\User::class ]);
// blade: {{ $user->name }}

with

类似于 Model::with()->find(),但用于具有 隐式模型绑定 的路由,在回调/控制器操作中不需要执行 $model->load()/$model->loadMissing()。现在可以这样做

Route::get('/users/{user}', [ UserController::class, 'show' ])->with('user', 'followers');

file

直接在浏览器中显示文件(例如静态 HTML 页面),而无需在回调/控制器操作中使用 File/Storage 门面

Route::file('/.well-known/security.txt', 'static-pages/security.txt');

whereEnum

>= v9.x

Route::where() 的包装器,类似于 Route::whereIn(),但支持枚举(直接传递枚举而不是数组)。

< v9.x

Route::where() 的包装器,类似于 Route::whereNumeric()Route::whereAlpha(),无需手动指定 or 连接的正则表达式。

语法

Route::get('/imports/{format}', [ ImportController::class, 'import' ])->withEnum('format', ImportFormat::class);

viewWithDataFrom

Route::viewWithDataFrom('users', 'users', [ 'users' => [ \App\Models\User, 'all' ] ]);

贡献

如果您想添加更多方法,请随意提交 一个问题一个合并请求