nova-kit / helpers
为 Laravel Nova 提供实用的帮助函数
v1.0.1
2023-07-13 00:45 UTC
Requires
- php: ^7.3 || ^8.0
Requires (Dev)
- orchestra/testbench: ^6.25 || ^7.22 || ^8.0
- phpstan/phpstan: ^1.10.5
- phpunit/phpunit: ^9.6
README
安装
要通过 composer 安装,请在终端中运行以下命令
composer require "nova-kit/helpers"
用法
Eloquent
获取合格列名
NovaKit\column_name(string|\Illuminate\Database\Eloquent\Model $model, string $attribute): string;
该函数为 eloquent 模型生成合格列名
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;
该函数检查给定的 $model
是否是 Illuminate\Database\Eloquent\Model
的实例,并且它在数据库中存在
use App\Models\User; use function NovaKit\eloquent_exists; $user = User::find(5); return eloquent_exists($user);
获取表名
NovaKit\table_name(string|\Illuminate\Database\Eloquent\Model $model): string;
该函数为 eloquent 模型生成表名
use function NovaKit\table_name; return table_name(App\Models\User::class);
Nova 请求帮助函数
有排序
NovaKit\has_ordering(\Laravel\Nova\Http\Requests\NovaRequest $request): bool;
确定当前请求是否有排序。
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'); } }
执行动作
NovaKit\running_action(\Illuminate\Http\Request $request, ?string $action): bool;
确定 NovaRequest 是否正在运行动作请求。
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'); }
常用帮助函数
验证列名
NovaKit\is_column_name(mixed $column): bool;
验证给定的 $column
是否是有效的列名。
use function NovaKit\is_column_name; if (is_column_name($request->query('sortBy'))) { $query->latest($request->query('sortBy')); }
安全整数
NovaKit\safe_int(mixed $value): int|string;
将大于 JavaScript 的 Number.MAX_SAFE_INTEGER
的较大 id 转换为字符串。
use function NovaKit\safe_int; return safe_int(9007199254741001); // will return "9007199254741001"
无模式 URL
NovaKit\schemaless_url(string $url): string;
获取给定 $url
的无模式 URL
use function NovaKit\schemaless_url; return schemaless_url('https://github.com'); // will return "github.com"