laravelba/laravel-js-routes

此包已被放弃,不再维护。作者建议使用 aaronlord/laroute 包。

从您的javascript文件中访问Laravel路由。

安装次数: 8,239

依赖者: 0

建议者: 0

安全: 0

星标: 21

关注者: 3

分支: 2

语言:JavaScript

1.0.0 2016-05-24 15:00 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:58:33 UTC


README

Travis Badge Latest Stable Version Latest Unstable Version Total Downloads License

已弃用

此包不再维护。请使用 https://github.com/aaronlord/laroute 或您可能找到的任何其他替代方案!

为什么?

我们热爱Laravel的路由系统,我们经常使用命名路由,例如 route('users.show', ['id' => 1]) 来生成 http://domain.tld/users/1。随着JavaScript框架(AngularJS、EmberJS、Backbone等)的兴起,很难跟踪后端和JavaScript的REST调用之间的路由变化。此库的目标是将这些命名路由暴露给前端,以便您可以执行: Router.route('users.show', {id: 1}) 并得到相同的结果。

安装

首先,通过Composer安装此包。

composer require laravelba/laravel-js-routes

要使用此包,请将其服务提供者添加到您的 config/app.php 提供者数组中。

    'providers' => [
        // ... 
        LaravelBA\LaravelJsRoutes\LaravelJsRoutesServiceProvider::class,
    ],

用法

服务提供者将为您的 artisan 命令添加一个新的命令 routes:javascript。默认情况下,此命令将在您的 resources/assets/js 文件夹中生成一个 routes.js 文件。这包含您应用中所有的 命名 路由。就这样!您可以出发了。

$ php artisan routes:javascript

懒提示如果您使用Elixir(或任何js任务管理器),请设置一个监视器,在您的php路由更改时运行此命令。

参数

名称 默认值 描述
name routes.js 输出文件名

选项

名称 默认值 描述
path resources/assets/js 将生成的文件名保存到基路径的相对位置。(例如,“public/assets”文件夹,如果您不打算混合使用。)
middleware null 如果您只想在JS上使用一些路由,您可以使用中间件(如js-routable)来选择这些路由
object Router 如果您想选择自己的全局JS对象(以避免冲突)
prefix null 如果您想为所有路由添加一个前缀

JavaScript用法

默认情况下,该命令将在您的 resources/assets/js 文件夹中生成一个 routes.js 文件,因此您可以使用Elixir

elixir(function(mix){
    mix.scripts([
        'routes.js',
        'app.js'
    ]);
});

您可以在公共文件夹中生成路由文件...

php artisan routes:javascript --path public/js

...然后将其包含在视图中

<script src="/js/routes.js" type="text/javascript">

无论如何,您都会在全局作用域中有一个 Routes 对象。

示例

// Usage: Router.route(route_name, params)
Router.route('users.show', {id: 1}) // returns http://dommain.tld/users/1

// If you assign parameters that are not present on the URI, they will get appended as a query string:
Router.route('users.show', {id: 1, name: 'John', order: 'asc'}) // returns http://dommain.tld/users/1?name=John&order=asc

贡献

此项目使用 phpunit 进行PHP测试,并使用 jasmine 进行JS测试。请检查 Gruntfile.js 文件中的可用Grunt任务。

发现了一个bug?

请告诉我们!发送一个pull request(更好)或创建一个问题。有问题?问吧!我们将对所有问题做出回应。

灵感来源

尽管没有代码被复制,但这个包深受FOSJsRoutingBundle(用于Symfony)的启发。

许可证

此包是开源软件,许可协议为MIT许可证