2017 © Pedro Peláez
 

library laroute

Access Laravels URL/Route helper functions, from JavaScript.

image

lord/laroute

Access Laravels URL/Route helper functions, from JavaScript.

  • Saturday, February 10, 2018
  • by aaronlord
  • Repository
  • 26 Watchers
  • 660 Stars
  • 376,723 Installations
  • PHP
  • 15 Dependents
  • 0 Suggesters
  • 92 Forks
  • 32 Open issues
  • 21 Versions
  • 11 % Grown

The README.md

Laroute

Laravel has some pretty sweet helper functions for generating urls/links and its auto-json-magic makes it building APIs super easy. It's my go-to choice for building single-page js apps, but routing can quickly become a bit of a pain., (*1)

Wouldn't it be amazing if we could access our Laravel routes from JavaScript?, (*2)

This package allows us to port our routes over to JavaScript, and gives us a bunch of very familiar helper functions to use., (*3)

Laroute in action, (*4)

Installation

Install the usual composer way., (*5)

composer.json
{
    "require" : {
        "lord/laroute" : "2.*"
    }
}

n.b Laravel 4.x users, check out version 1.3.2, (*6)

app/config/app.php
    ...

    'providers' => array(
        ...
        Lord\Laroute\LarouteServiceProvider::class,
    ],

    ...

Configure (optional)

Copy the packages config files., (*7)

php artisan vendor:publish --provider='Lord\Laroute\LarouteServiceProvider'
app/config/packages/lord/laroute/config.php

return [ /* * The destination path for the javascript file. */ 'path' => 'public/js', /* * The destination filename for the javascript file. */ 'filename' => 'laroute', /* * The namespace for the helper functions. By default this will bind them to * `window.laroute`. */ 'namespace' => 'laroute', /* * Generate absolute URLs * * Set the Application URL in config/app.php */ 'absolute' => false, /* * The Filter Methode * * 'all' => All routes except "'laroute' => false" * 'only' => Only "'laroute' => true" routes * 'force' => All routes, ignored "laroute" route parameter */ 'filter' => 'all', /* * Action Namespace * * Set here your controller namespace (see RouteServiceProvider -> $namespace) for cleaner action calls * e.g. 'App\Http\Controllers' */ 'action_namespace' => '', /* * The path to the template `laroute.js` file. This is the file that contains * the ported helper Laravel url/route functions and the route data to go * with them. */ 'template' => 'vendor/lord/laroute/src/templates/laroute.js', /* * Appends a prefix to URLs. By default the prefix is an empty string. * */ 'prefix' => '', ];

Generate the laroute.js

To access the routes, we need to "port" them over to a JavaScript file:, (*8)

php artisan laroute:generate

With the default configuration, this will create a public/js/laroute.js file to include in your page, or build., (*9)

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

Note: You'll have to laroute:generate if you change your routes., (*10)

JavaScript Documentation

By default, all of the functions are under the laroute namespace. This documentation will stick with this convention., (*11)

action

Generate a URL for a given controller action., (*12)

/** 
 * laroute.action(action, [parameters = {}])
 *
 * action     : The action to route to.
 * parameters : Optional. key:value object literal of route parameters.
 */

laroute.action('HomeController@getIndex');

route

Generate a URL for a given named route., (*13)

/**
 * 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

Generate a fully qualified URL to the given path., (*14)

/**
 * 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

Generate a html link to the given url., (*15)

/**
 * 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;" });

Generate a html link to the given route., (*16)

/**
 * 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');

Generate a html link to the given action., (*17)

/**
 * laroute.link_to_action(action, [title = url, parameters = {}], attributes = {}]]])
 *
 * action     : The action 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_action('HelloController@planet', undefined, { planet : 'world' });

PHP Documentation

Ignore/Filter Routes

By default, all routes are available to laroute after a php artisan laroute:generate. However, it is sometimes desirable to have laroute ignore certain routes. You can do this by passing a laroute route option., (*18)

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

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

Licence

View the licence in this repo., (*19)

The Versions

12/08 2016
24/12 2015

v2.2.0

2.2.0.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

10/06 2015

v2.1.0

2.1.0.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

13/02 2015

v2.0.0

2.0.0.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

23/07 2014

v1.3.2

1.3.2.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

18/07 2014

v1.3.1

1.3.1.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

18/07 2014

v1.2.2

1.2.2.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

18/07 2014

v1.3.0

1.3.0.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

18/07 2014

v1.2.1

1.2.1.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

04/04 2014

v1.2

1.2.0.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

14/03 2014

v1.1

1.1.0.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes

14/03 2014

v1.0

1.0.0.0

Access Laravels URL/Route helper functions, from JavaScript.

  Sources   Download

The Requires

 

The Development Requires

by Aaron Lord

laravel javascript routing routes