---
title: "Vlastné modely a tabuľky — Permissions for Laravel | Roundly"
description: "Nahraďte modely Role a Permission vlastnými podtriedami, premenujte tabuľky a zistite nastavenie priamo v kóde."
url: https://roundly-consulting.com/sk/open-source/navody/permissions-for-laravel/vlastne-modely
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Permissions for Laravel](https://roundly-consulting.com/sk/open-source/navody/permissions-for-laravel.md)

# Vlastné modely a tabuľky

Oba modely nie sú final a všade sa určujú cez konfiguráciu — nikdy pevne zadaným názvom triedy. Rozšírte ich o vlastné relácie, scopes či casty:

```php
namespace App\Models;

use RoundlyConsulting\Permissions\Models\Role as BaseRole;

class Role extends BaseRole
{
    // your own relations, scopes, casts …
}
```

```php
// config/permissions.php
'models' => [
    'role' => App\Models\Role::class,
    'permission' => App\Models\Permission::class,
],
```

Permissions::role(), Permissions::permission(), každé udelenie aj každá relácia potom používajú vašu triedu. Keďže riadky vznikajú ako vaša trieda, spúšťajú sa vaše model eventy a observery — a na váš model sa napojí aj invalidácia cache balíka:

```php
use RoundlyConsulting\Permissions\Facades\Permissions;

$role = Permissions::role('editor');  // an App\Models\Role instance
Permissions::roleModel();             // App\Models\Role::class
Permissions::roleModel()::query();    // a query on your class
$user->roles;                         // Collection<App\Models\Role>
```

Nastavená trieda musí byť pôvodný Role či Permission alebo jeho podtrieda. Čokoľvek iné — Eloquent model, ktorý ho nerozširuje, či hodnota, ktorá vôbec nie je modelom — vyhodí InvalidConfigurationException s názvom kľúča; model z balíka ju nikdy potichu nenahradí.

## Názvy tabuliek

Ľubovoľnú tabuľku premenujte v table\_names pred migráciou — názvy stĺpcov sú pevné:

```php
// config/permissions.php
'table_names' => [
    'roles' => 'acl_roles',
    'permissions' => 'acl_permissions',
    'permission_role' => 'acl_permission_role',
    'model_roles' => 'acl_model_roles',
    'model_permissions' => 'acl_model_permissions',
],
```

## Nastavenie priamo v kóde

Na triedy modelov stačia Permissions::roleModel() a permissionModel(). Statické resolvery na PermissionRegistrar navyše sprístupňujú nastavené tabuľky a typ kľúča — volajú ich publikované migrácie a hodia sa aj pre vlastné dopyty a migrácie:

```php
use RoundlyConsulting\Permissions\Support\PermissionRegistrar;

PermissionRegistrar::roleModel();              // configured Role class-string
PermissionRegistrar::permissionModel();        // configured Permission class-string

PermissionRegistrar::rolesTable();             // resolved table names
PermissionRegistrar::permissionsTable();
PermissionRegistrar::permissionRoleTable();
PermissionRegistrar::modelRolesTable();
PermissionRegistrar::modelPermissionsTable();

PermissionRegistrar::keyType();                // KeyType enum — BigInt, Uuid or Ulid
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/permissions-for-laravel.md)
