Skip to content

Useful helpers for Laravel Framework & Nova

License

Notifications You must be signed in to change notification settings

nova-kit/helpers

Repository files navigation

Useful helpers for Laravel Nova

tests Latest Stable Version Total Downloads Latest Unstable Version License Coverage Status

Installation

To install through composer, run the following command from terminal:

composer require "nova-kit/helpers"

Usages

Eloquent

Get Qualified Column Name

NovaKit\column_name(string|\Illuminate\Database\Eloquent\Model $model, string $attribute): string;

The function generate qualified column name for an eloquent model:

use function NovaKit\column_name;

return column_name(App\Models\User::class, 'email');

Eloquent Exists

NovaKit\eloquent_exists(\Illuminate\Database\Eloquent\Model|mixed $model): bool;

The function checks if given $model is an instance of Illuminate\Database\Eloquent\Model and it exists in the database:

use App\Models\User;
use function NovaKit\eloquent_exists;

$user = User::find(5);

return eloquent_exists($user);

Get Table Name

NovaKit\table_name(string|\Illuminate\Database\Eloquent\Model $model): string;

The function generate table name for an eloquent model:

use function NovaKit\table_name;

return table_name(App\Models\User::class);

Nova Request Helpers

Has Ordering

NovaKit\has_ordering(\Laravel\Nova\Http\Requests\NovaRequest $request): bool;

Determine if current Request has any ordering.

use Laravel\Nova\Http\Requests\NovaRequest;
use function NovaKit\has_ordering;

public static function indexQuery(NovaRequest $request, $query)
{
    if (! has_ordering($request)) {
        $query->orderBy('name');
    }
}

Running Action

NovaKit\running_action(\Illuminate\Http\Request $request, ?string $action): bool;

Determine NovaRequest is currently Running an Action Request.

use Illuminate\Http\Request;
use Laravel\Nova\Http\Requests\NovaRequest;

public function authorizedToUpdate(Request $request)
{
    if (running_action($request, 'open-on-platform')) {
        return $request->user()->canModerateResources();
    }

    return $this->authorizedTo($request, 'update');
}

Common Helpers

Validate Column Name

NovaKit\is_column_name(mixed $column): bool;

Validate if given $column is a valid column name.

use function NovaKit\is_column_name;

if (is_column_name($request->query('sortBy'))) {
    $query->latest($request->query('sortBy'));
}

Safe Integer

NovaKit\safe_int(mixed $value): int|string;

Convert large id higher than JavaScript's Number.MAX_SAFE_INTEGER to string.

use function NovaKit\safe_int;

return safe_int(9007199254741001); // will return "9007199254741001"

Schemaless URL

NovaKit\schemaless_url(string $url): string;

Get schemaless URL for given $url

use function NovaKit\schemaless_url;

return schemaless_url('https://github.com'); // will return "github.com"