<?php
namespace Istlab\AdminCrud;
use Illuminate\Support\Str;
class AdminCrud
{
/**
* ルート名サフィックス ('crudcopy' 等) から完全なルート名を返す。
*/
public static function routeName(string $suffix): string
{
return config('admin-crud.route_name_prefix', 'admin.') . $suffix;
}
/**
* ルート名サフィックスからURLを生成する。
*/
public static function route(string $suffix, array $params = []): string
{
return route(static::routeName($suffix), $params);
}
/**
* テーブル名に対応するEloquentモデルのクラス名を返す。存在しなければ null。
*/
public static function modelFor(string $tableName): ?string
{
$namespace = rtrim(config('admin-crud.model_namespace', 'App\\Models'), '\\');
$class = $namespace . '\\' . Str::studly(Str::singular($tableName));
return class_exists($class) ? $class : null;
}
}