dogadogmbh/laroute

从JavaScript访问Laravel URL/路由辅助函数。

3.0.0 2021-01-23 01:36 UTC

README

aaronlord/laroute分支出来,用于安全和更新Laravel版本

Laravel有一些很棒的辅助函数用于生成URL/链接,它的自动JSON魔法让构建API变得非常容易。这是我构建单页js应用的首选,但路由很快就会变得有点麻烦。

如果我们能从JavaScript中访问Laravel路由会怎么样呢?

这个包允许我们将路由迁移到JavaScript,并提供了一组非常熟悉的辅助函数来使用。

Laroute in action

安装

使用常规的composer方式进行安装。

composer require dogado/laroute

配置(可选)

复制包的配置文件。

php artisan vendor:publish --provider='Dogado\Laroute\LarouteServiceProvider'

生成laroute.js

要访问路由,我们需要将它们“迁移”到一个JavaScript文件中

php artisan laroute:generate

默认配置下,这将创建一个public/js/laroute.js文件,以便包含在您的页面或构建中。

<script src="/js/laroute.js"></script>

注意:如果您更改了路由,您将需要运行laroute:generate

JavaScript 文档

默认情况下,所有函数都在laroute命名空间下。此文档将遵循此约定。

route

为给定的命名路由生成URL。

/**
 * laroute.route(name, [parameters = {}])
 *
 * name       : The name of the route to route to.
 * parameters : Optional. key:value object literal of route parameters.
 */
 
 laroute.route('Hello.{planet}', { planet : 'world' });

url

为给定的路径生成一个完全合格的URL。

/**
 * laroute.url(name, [parameters = []])
 *
 * name       : The name of the route to route to.
 * parameters : Optional. value array of route parameters.
 */
 
 laroute.url('foo/bar', ['aaa', 'bbb']); // -> /foo/bar/aaa/bbb

link_to

为给定的URL生成一个HTML链接。

/**
 * laroute.link_to(url, [title = url, attributes = {}]])
 *
 * url        : A relative url.
 * title      : Optional. The anchor text to display
 * attributes : Optional. key:value object literal of additional html attributes.
 */
 
 laroute.link_to('foo/bar', 'Foo Bar', { style : "color:#bada55;" });

link_to_route

为给定的路由生成一个HTML链接。

/**
 * laroute.link_to_route(name, [title = url, parameters = {}], attributes = {}]]])
 *
 * name       : The name of the route to route to.
 * title      : Optional. The anchor text to display
 * parameters : Optional. key:value object literal of route parameters.
 * attributes : Optional. key:value object literal of additional html attributes.
 */
 
 laroute.link_to_route('home', 'Home');

PHP 文档

忽略/过滤路由

默认情况下,所有路由在运行php artisan laroute:generate后都可用。但是,有时希望laroute忽略某些路由。您可以通过传递一个laroute路由选项来实现。

Route::get('/ignore-me', [
    'laroute' => false,
    'as'      => 'ignoreme',
    'uses'    => 'IgnoreController@me'
]);

Route::group(['laroute' => false], function () {
    Route::get('/groups-are-super-useful', 'GroupsController@index');
});

许可证

在此存储库中查看许可证。