exmachina/laravel-route-js

将 Laravel 的路由转换为 json 文件以在 JavaScript 中使用。

v1.1.0 2020-08-09 08:54 UTC

This package is not auto-updated.

Last update: 2024-09-20 07:40:34 UTC


README

将 Laravel 的路由转换为 json 文件以在 JavaScript 中生成 URL

功能

  • 支持 Laravel 5.8.x, 6.x, 和 7.x
  • 允许指定要包括/排除的路由。

安装

composer require exmachina/laravel-route-js

在您的 Laravel app/config.php 中,添加服务提供者

ExMachina\LaravelRouteJs\Providers\JsRoutesServiceProvider::class

配置

首先,发布默认包的配置

php artisan vendor:publish --provider="ExMachina\LaravelRouteJs\Providers\JsRoutesServiceProvider"

配置将被发布到 config/route-js.php

用法

生成路由

php artisan js-route:generate

此命令将生成 2 个文件,路由列表(laravel-routes.json)和功能 js(laravel-routes.js)文件。默认目录是 resources/js/routes

选项

JavaScript 使用

import Route from 'path/to/laravel-route.js';

使用命名路由获取 URL

Route.get('welcome');

带参数的路由

参数名称将与您在 Laravel 路由中提供的一致。

# This will be equivalent to laravel route entry: 
#  Route::get('profile/{id}').name('profile.edit')
Route.get('profile.edit', {id: 1})

# Laravel route: Route::post('profile/{id}/address/{address_id}').name('address.edit')
Route.get('address.edit', {id: 1, address_id: 1004})

# Getting route without parsing  the parameters
# route entry: {'public.user': {url: 'user/{user}', parameters: ["user"]}}
Route.getRawURL('public.user'); // result: /user/{user}

# Changing prefix and suffix of params
# getRawURL(routeName, prefix = '{', suffix = '}')
Route.getRawURL('public.user', ':', ''); // result: /user/:user

路由列表

您可以通过调用 Route 实例的 setRoutes 方法更改路由列表。

import Route from 'path/to/laravel-route.js';

Route.setRoutes( [ { 'route-name': 'url', parameters: []} ] )