Web TippsUse custom web fonts in Google Sheets charts(08.09.2026 um 17:05 Uhr)
Web TippsIntroducing the new 1Password App for Google Chat(08.09.2026 um 18:02 Uhr)
Web TippsUse custom web fonts in Google Sheets charts(08.09.2026 um 17:05 Uhr)
Web TippsIntroducing the new 1Password App for Google Chat(08.09.2026 um 18:02 Uhr)

🔧 Programmierung 🕛 vor 1 Jahr 8 Min Lesezeit
0

Laravel: Prístup viacerých aplikácii na rovnakú databázu

↗ Quelle (dev.to)
🗣️ Stimme:

V prípade, že potrebujem na rovnakú databázu (v príklade nižšie používaná - MySQL) pristupovať z viacerých Laravel aplikácii, a to tak, aby každá z nich mala vlastnú db-tabuľku používateľov a vlastný autentifikačný mechanizmus (nezávislý od druhej aplikácie) tu je návod ako to urobiť.



A.) Prvá aplikácia "LaravelApp01" využivajúca JetStream autentifikáciu a manažovanie používateľa:



1.) Najprv si vytvorím prvú Laravel aplikáciu, spustením príkazu




CODE
composer create-project laravel/laravel LaravelApp01






a v podadresári "LaravelApp01" je vytvorená základná štruktúra Laravel aplikácie.



2.) predpokladajme, že potrebnú MySQL databázu už mám vytvorenú (a volá sa "db01".



3.) túto databázu si nastavím/pripojím na ňu aplikáciu "LaravelApp01", a to skonfigurovaním aplikačného/konfiguračného súboru ".env", kde si nastavím:




CODE
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db01
DB_USERNAME=root
DB_PASSWORD=****






4.) táto prvá Laravel aplikácia bude používať autentifikáciu, registráciu a prihlasovanie cez package "JetStream", takže je potrebné si zinštalovať tento package do aplikácie "LaravelApp01" - v aplikačnom/projektovom adresári spustiť príkaz:




CODE
composer require laravel/jetstream






čím sa tento package zinštaluje



5.) ak si teraz spustím developovací server príkazom:




CODE
php artisan serve






a v prehliadači si zobrazím URL:




CODE
http://localhost:8000/






tj.úvodnú stránku aplikácie "LaravelApp01", vidím tam už aj "Log in" a "Register" odkaz, ale tieto ešte nefungujú. Aplikácia nevie nájsť "auth.login", resp."auth.register"



6.) je potrebné ešte spustiť príkaz:




CODE
php artisan jetstream:install livewire






čo vytvorí potrebné migračné skripty, zinštaluje sa package "livewire/livewire" a aktualizujú sa niektoré ďalšie package, a vypublikujú sa potrebné asset-y a vybuild-uje sa aplikácia



7.) je potrebné spustiť migráciu, tj.vytvorenie potrebných db-tabuliek a modelov, príkazom:




CODE
php artisan migrate






a v databáze "db01" sú vytvorené db-tabuľky (6ks):




  • failed_jobs

  • migrations

  • password_reset_tokens

  • personal_access_tokens

  • sessions

  • users



8.) ak teraz znovu spustím developovací server a URL aplikácie, už budú fungovať aj odkazy "Login" a "Register" a aj funkcionalita skrývajúca sa za nimi, tj.viem sa zaregistrovať a následne prihlásiť (a potom aj odhlásiť z aplikácie).



B.) Druhá aplikácia "LaravelApp02" využivajúca Bootstrap/UI autentifikáciu a manažovanie používateľa:



1.) opäť podobným spôsobom vytvorím aj druhú Laravel aplikáciu:




CODE
composer create-project laravel/laravel LaravelApp02






a v podadresári "LaravelApp02" je vytvorená základná štruktúra Laravel aplikácie.



2.) aplikácia "LaravelApp02" bude tiež napojená na rovnakú databázu, takže nastavenie v súbore ".env" bude tiež:




CODE
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db01
DB_USERNAME=root
DB_PASSWORD=***






3.) táto druhá Laravel aplikácia "LaravelApp02" bude na autentifikáciu a manažovanie používateľov používať package "bootstrap/ui"



4.) ale ešte pred tým, je potrebné si premenovať názov db-tabuľky, do ktorej si bude táto druhá aplikácia ukladať svojích používateľov (prvá aplikácia "LaravelApp01" má pre tento účel zriadenú default-nú db-tabuľku "users").

Pre druhú aplikáciu si zvolíme napr.názov "admins".



5.) nájsť si súbor migrácie pre "users":




CODE
\database\migrations\2014_10_12_000000_create_users_table.php






a tu zeditovať kód takto:




CODE
...
return new class extends Migration {
public function up(): void {
Schema::create('admins', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
public function down(): void {
Schema::dropIfExists('admins');
}
};






6.) prípadne - ak potrebujem, môžem doplniť nejaké ďalšie atribúty/stlpce, napr.:




CODE
...
$table->string('BusinessName');
...






7.) a ešte, kvôli konzistencii je potrebné vhodne premenovať aj tento súbor, tj.pôvodný názov:




CODE
\database\migrations\2014_10_12_000000_create_users_table.php






zmeniť na:




CODE
\database\migrations\2014_10_12_000000_create_admins_table.php






8.) teraz je čas zinštalovať package "bootstrap/ui" do aplikácie "LaravelApp02" - v aplikačnom/projektovom adresári spustiť príkaz:




CODE
composer require laravel/ui






a následne spustiť príkaz:




CODE
php artisan ui bootstrap --auth






a na koniec ešte odporúčajú spustiť:




CODE
npm install && npm run dev






9.) a teraz spustiť migračné súbory príkazom:

php artisan migrate

a v databáze "db01" sú vytvorené iba dve nové db-tabuľky:




  • admins

  • password_resets



db-tabuľka "admins" bude slúžiť na správu používateľov Laravel aplikácie "LaravelApp02"



10.) ešte je potrebné zmeniť/doplniť v modeli "User":




CODE
\app\Models\User.php






kód takto:




CODE
...
class User extends Authenticatable {
use HasApiTokens, HasFactory, Notifiable;
protected $table = 'admins';
...






11.) a ak som v migrácii (viď krok 6.) doplňal nejaký nový atribút, je potrebné ho doplniť aj tu v modeli:




CODE
...
protected $fillable = [
'name',
'email',
'password',
'BusinessName',
];






12.) doplniť ešte do súboru:




CODE
\config\auth.php






takýto kód:




CODE
<?php
return [
'table' => 'admins',
...






13.) a aby fungovali zápisy vkladaných hodnôt pri registrácii, je potrebné ešte zeditovať v súbore:




CODE
\app\Http\Controllers\Auth\RegisterController.php






kód takto:




CODE
...
protected function validator(array $data) {
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:admins'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}






14.) ak teraz v tejto druhej Laravel aplikácii "LaravelApp02" spustím developovací server a dám si zobraziť úvodnú stránku aplikácie, tj.:




CODE
http://localhost:8000/






mám na stránke odkazy "Login" a "Register" a funkcionalita pod nimi funguje, viem sa zaregistrovať a prihlásiť (a aj odhlásiť) a údaje o registrovanom používateľovi sa zapisujú do db-tabuľky "admins"



C.) Tretia aplikácia "LaravelApp03" využivajúca JetStream package na autentifikáciu a manažovanie používateľa:



A vytvorím si ešte aj tretiu Laravel aplikáciu "LaravelApp03", ktorá bude používať (rovnako ako package "LaravelApp01") "JetStream" package na autentifikáciu používateľa.



1.) vytvorím si tretiu aplikáciu príkazom:




CODE
composer create-project laravel/laravel LaravelApp03






2.) v súbore ".env" si nastavím potrebnú databázu:




CODE
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db01
DB_USERNAME=root
DB_PASSWORD=***






3.) v databáze "db01" mám v tomto momente už vytvorené db-tabuľky:




  • admins (používatelia pre druhú aplikáciu "LaravelApp02")

  • failed_jobs

  • migrations

  • password_resets (resetovanie hesiel pre druhú aplikáciu "LaravelApp02")

  • password_reset_tokens

  • personal_access_tokens

  • sessions

  • users (používatelia pre prvú aplikáciu "LaravelApp01")



a tretia Laravel aplikácia "LaravelApp03" bude mať samostatnú db-tabuľku pre svojích používateľov, napr."members"



4.) v tretej aplikácii si zinštalovať package "JetStream" príkazom:




CODE
composer require laravel/jetstream






nasleduje príkaz:




CODE
php artisan jetstream:install livewire






čo vytvorí migračné skripty, zinštaluje package "livewire/livewire" a (aktualizuje) niektoré ďalšie package, a vypublikuje asset-y a vybuild-uje aplikáciu.



5.) v existujúcom migračnom skripte:




CODE
\database\migrations\2014_10_12_000000_create_users_table.php






si upraviť kód - zmena názvu db-tabuľky z "users" na "members":




CODE
...
return new class extends Migration {
public function up(): void {
Schema::create('members', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->foreignId('current_team_id')->nullable();
$table->string('profile_photo_path', 2048)->nullable();
$table->timestamps();
});
}
public function down(): void {
Schema::dropIfExists('members');
}
};






6.) a kvôli konzistencii si premenovať aj tento migračný súbor, tj.z:




CODE
\database\migrations\2014_10_12_000000_create_users_table.php






premenovať na:




CODE
\database\migrations\2014_10_12_000000_create_members_table.php






7.) teraz možno spustiť samotnú migráciu:




CODE
php artisan migrate






a v databáze "db01" je vytvorená nová db-tabuľka "members"



8.) ešte je potrebné zmeniť/doplniť v modeli "User":




CODE
\app\Models\User.php






doplniť názov db-tabuľky s ktorou má pracovať:




CODE
...
class User extends Authenticatable {
use HasApiTokens;
use HasFactory;
...
protected $table = 'members';
...






9.) a doplniť ešte do súboru:




CODE
\config\auth.php






odkaz/referenciu na používanú db-tabuľku:




CODE
<?php
return [
'table' => 'members',
...






10.) ak teraz spustím developovací server v rámci tretej aplikácie "LaravelApp03" a v prehliadači URL:




CODE
http://localhost:8000/






viem sa registrovať (a následne aj prihlásiť) do tejto Laravel aplikácie, a data sa zapisujú do db-tabuľky "members"



11.) mám takto vytvorené tri nezávislé aplikácie "LaravelApp01", "LaravelApp02" a "LaravelApp03", každá z nich má vlastný autentifikačný systém ("LaravelApp01" a "LaravelApp03" majú package "JetStream" a "LaravelApp02" má "bootstrap/ui") a každá z nich si svojích používateľov uchováva v samostatnej db-tabuľke ("LaravelApp01" v db-tabuľke "users", "LaravelApp02" v db-tabuľke "admins" a "LaravelApp03" v db-tabuľke "members"). Zároveň ostatné db-tabuľky (a data) môžem rovnocenne použiť vo všetkých troch aplikáciách.

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
3 Quellen
Use custom web fonts in Google Sheets charts
2 Quellen
Introducing the new 1Password App for Google Chat
1 Quelle
Context-aware access controls are available for Gemini Enterprise in the Admin console
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Laravel: Prístup viacerých aplikácii na rovnakú databázu

Thematisch verwandte Begriffe: Laravel, Prístup, viacerých, aplikácii · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...