In diesem Blogbeitrag möchte ich dokumentieren, wie ich meine erste Laravel Anwendung gebaut habe.
Es geht bei der Anwendung “Wo2oderMehr” darum, dass in Zeiten von COVID-19 nun wieder Gottesdienste erlaubt sind, unter Einhaltung des Mindestabstands. Die Anwendung hilft dabei, dass die Besucher sich (ohne Benutzerkonto) anmelden können, und dadurch die Gesamtanzahl der Besucher beschränkt werden kann. Weitere Infos auf www.wo2odermehr.de…
Der Quelltext befindet sich hier: https://github.com/SolidCharity/where2ormore
Ich bin unter anderem dieser Anleitung gefolgt: https://laravel-news.com/your-first-laravel-application
Installation
Siehe https://laravel.com/docs/7.x
Ich habe die Schritte hier dokumentiert: https://github.com/SolidCharity/where2ormore/blob/master/INSTALL.md
Erste Einrichtung der Laravel Anwendung
siehe https://laravel.com/docs/7.x#installing-laravel
composer global require laravel/installer composer require doctrine/dbal export PATH=$PATH:~/.composer/vendor/bin cd /var/www laravel new where2ormore chmod a+w /var/www/where2or3/storage/logs chmod a+w /var/www/where2or3/storage/framework/sessions chmod a+w /var/www/where2or3/storage/framework/views
In meiner nginx Konfiguration in /etc/nginx/conf.d/where2ormore.conf
musste ich noch konfigurieren:
root /var/www/where2ormore/public;location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$query_string;
}
Datenbank einrichten und erste Tabelle erstellen
siehe https://laravel.com/docs/7.x/migrations
# um eine neue Tabelle services anzulegen: php artisan make:migration create_services_table # nun die Spalten anlegen, ggf. auch Daten: vi database/migrations/<datum>_create_services_table.php # suche nach DB_, und setze Datenbank, Benutzer und Kennwort vi .env # nun wird die Tabelle angelegt php artisan migrate
Entsprechend können auch später neue Tabellen oder neue Spalten zu existierenden Tabellen hinzugefügt werden.
UI anlegen
composer require laravel/ui php artisan ui bootstrap npm install && npm run dev vi routes/web.php vi resources/views/welcome.blade.php
Model anlegen und erweitern
php artisan make:model --factory Service php artisan make:model --factory Participant php artisan make:model --factory Tenant vi app/Service.php vi app/Participant.php
Benutzerverwaltung
siehe https://www.itsolutionstuff.com/post/laravel-6-multi-auth-authentication-tutorialexample.html
php artisan ui:auth vi app/Http/Middleware/Authenticate.php vi app/Http/Controllers/Auth/RegisterController.php vi resources/views/auth/register.blade.php
Routen und Controller
php artisan make:controller FrontendController --resource php artisan make:controller ServiceController --resource php artisan make:controller ParticipantController --resource vi app/Http/Controllers/FrontendController.php vi routes/web.php
Übersetzung
siehe https://laravel.com/docs/7.x/localization
vi resources/lang/de/messages.php # die Sprache aus dem Browser Agent erkennen php artisan make:middleware SetLocale vi ./app/Http/Middleware/SetLocale.php
siehe die Übersetzungen auf https://github.com/caouecs/Laravel-lang
composer require caouecs/laravel-lang:~6.0
cp vendor/caouecs/laravel-lang/src/nl/* resources/lang/nl
cp vendor/caouecs/laravel-lang/src/de/* resources/lang/de
cp vendor/caouecs/laravel-lang/json/nl.json resources/lang/
cp vendor/caouecs/laravel-lang/json/de.json resources/lang/
Log Datei und Debuggen
Bei Problemen, sollte man immer in storage/logs/laravel.log
schauen. Und in der Datei .env, kann man APP_DEBUG=false
oder APP_DEBUG=true
setzen, dann werden Fehler auch direkt in der Webseite angezeigt.