Laravel Helpers
, (*1)
Installation
This package requires PHP 5.6+, and includes a Laravel 5 Service Provider., (*2)
To install through composer include the package in your composer.json
., (*3)
"curtissaunders/laravel-helpers": "^1.0"
Run composer install
or composer update
to download the dependencies or you can run composer require curtissaunders/laravel-helpers
., (*4)
Laravel 5 Integration
To use the package with Laravel 5, add the Helper Service Provider to the list of service providers
in app/config/app.php
., (*5)
'providers' => [
CurtisSaunders\LaravelHelpers\HelpersServiceProvider::class
];
Available helpers
-
versioned_asset will apply a cache busting query string to your assets.
-
concat will concatenate strings together
-
concat_ws will concatenate strings together with the separator being defined as the first argument
-
generate_uuid will generate a valid RFC 4122 UUID
-
route_is/routeIs will check if the current route matches the route passed
-
query_log_to_sql will allow you to log a database query to a variable and dump it out for easy debugging
-
combine_query will combine a query with its bindings
Example of versioned_asset:
{{ versioned_asset('images/photo.png') }}
, (*6)
outputs:, (*7)
http://mysite.com/images/photo.png?v=392104829
, (*8)
Example of concat:
{{ concat('John', 'Terry', 'Dave') }}
, (*9)
outputs:, (*10)
John Terry Dave
, (*11)
Example of concat_ws:
{{ concat_ws(' - ', 'John', 'Terry', 'Dave') }}
, (*12)
outputs:, (*13)
John - Terry - Dave
, (*14)
Example of generate_uuid:
{{ generate_uuid() }}
, (*15)
outputs:, (*16)
e4eaaaf2-d142-11e1-b3e4-080027620cdd
, (*17)
When using the generate_uuid
function, you are able to generate valid RFC 1, 3, 4 and 5 versions. In order to change
the version, simply pass the version number you require as the first argument (defaults to 1). For example, to generate
a version 4 Uuid, you can do the following:, (*18)
{{ generate_uuid(4) }}
, (*19)
outputs:, (*20)
25769c6c-d34d-4bfe-ba98-e0ee856f3e7a
, (*21)
For versions 3 and 5, you are also required to pass in a string as the second argument. This is hashed and used when
generating the Uuid. For example:, (*22)
{{ generate_uuid(3, 'php.net') }}
, (*23)
outputs:, (*24)
11a38b9a-b3da-360f-9353-a5a725514269
, (*25)
Example of route_is() or routeIs():
Examples shown in Laravel Blade, (*26)
@if(route_is('about.index'))
// Do something
@else
// Do something else
@endif
Alternatively, (*27)
@if(routeIs('about.index'))
// Do something
@else
// Do something else
@endif
You can also check for specific parameters by passing them in an array as the second argument. For example, you may want to check that you're on a specific product category to apply an "active" class to a link. Consider the below when looping through category links:, (*28)
@foreach($categories as $category)
<a href="{{ route('product.category', [$category->slug]) }}" class="{{ route_is('product.category', ['categorySlug' => $category->slug]) ? 'active' : '' }}">
{{ $category->name }}
</a>
@endforeach
The above would apply a class of "active" when you're on the corresponding page to that link., (*29)
Example of query_log_to_sql:
// Enable laravel's query log
DB::connection()->enableQueryLog();
... // Do database transactions ...
// Get all the queries ran since the query log was enabled
$queryLog = DB::getQueryLog();
// Combine the query logs ran with their bindings into the sql that was ran
$sqlQueries = query_log_to_sql($queryLog);
// Returns an array of all the sql queries ran with their bindings in place, useful for quick debugging
dd($sqlQueries);
Example of combine_query:
// Create a query using Eloquent
$eloquentQuery = UserModel::where('email', '=', 'user.name@example.com');
// Combine the Eloquent query sql and bindings into a query you can run in mysql
$sqlQuery = combine_query($eloquentQuery->toSql(), $eloquentQuery->getBindings());