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,
    ],

用法

ServiceProvider将向您的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 任务。

发现了一个错误?

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

灵感来源

尽管没有复制代码,但本包深受 FOSJsRoutingBundle 的启发,该包是用于 Symfony 的。

许可证

本包是开源软件,受 MIT 许可证 许可。