meta data for this page
  •  

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
laravel [2021/11/21 21:54] – [Pierwsze kroki] Paweł Grygorczuklaravel [2022/03/01 14:54] (aktualna) – [Pierwsze kroki] Paweł Grygorczuk
Linia 6: Linia 6:
 1. Zainstaluj [[PHP]], [[MySQL]]. Może być [[XAMPP]] albo [[WampServer]]. Jeżeli wykonujesz instalację produkcyjną, zobacz [[linux:lamp]]. 1. Zainstaluj [[PHP]], [[MySQL]]. Może być [[XAMPP]] albo [[WampServer]]. Jeżeli wykonujesz instalację produkcyjną, zobacz [[linux:lamp]].
  
-2. W MySQL ustawiamy domyślny silnik na InnoDB (poniższym poleceniem lub w my.ini ''default-storage-engine=InnoDB'').+2. W MySQL ustawiamy domyślny silnik na InnoDB (poniższym poleceniem na czas jednej sesji lub permanentnie w my.ini ''default-storage-engine=InnoDB'').
  
 <code mysql> <code mysql>
Linia 70: Linia 70:
 ===== Rozwiązywanie problemów ===== ===== Rozwiązywanie problemów =====
  
-Jeżeli natkniesz się (np. podczas próby wykonania migracji) na błąd ''Specified key was too long'', ustaw w ''app/Providers/AppServiceProvider.php'', metodzie ''boot'':+Jeżeli natkniesz się (np. podczas próby wykonania migracji) na błąd ''Specified key was too long'', upewnij się ze wykonałeś/aś krok (2), oraz ustaw w ''app/Providers/AppServiceProvider.php'', metodzie ''boot'':
  
 <code php> <code php>
-Schema::defaultStringLength(191);+use Illuminate\Support\Facades\Schema; 
 + 
 +... 
 + 
 +public function boot(){ 
 +  Schema::defaultStringLength(191); 
 +}
 </code> </code>
  
-Dlaczego akurat 191?+Dlaczego akurat 191? Cytat z https://stackoverflow.com/questions/23786359/laravel-migration-unique-key-is-too-long-even-if-specified
  
 You have to set the length of the indexed column according to the limit of 767 bytes. Be aware that VARCHAR may have 1, 2 or 4 bytes for each length unit. Example: utf8_mb4 (4 bytes) -> 767 / 4 = 191. Otherwise utf8_general_ci for VARCHAR(X) with X < 85 ( 1 byte ) = O(85) , or utf8_general_ci for VARCHAR(X) with X >= 86 ( 2 bytes ) -> 767 / 2 = 383. Consider also other columns lenght in multiple column indexes. You have to set the length of the indexed column according to the limit of 767 bytes. Be aware that VARCHAR may have 1, 2 or 4 bytes for each length unit. Example: utf8_mb4 (4 bytes) -> 767 / 4 = 191. Otherwise utf8_general_ci for VARCHAR(X) with X < 85 ( 1 byte ) = O(85) , or utf8_general_ci for VARCHAR(X) with X >= 86 ( 2 bytes ) -> 767 / 2 = 383. Consider also other columns lenght in multiple column indexes.
Linia 88: Linia 94:
 <code bash> <code bash>
 php artisan migrate php artisan migrate
 +php artisan db:seed
 </code> </code>
  
 +Można usunąć wszystkie tabele, następnie stworzyć od nowa (migrate:fresh) i wypełnić danymi (seed):
 +
 +<code bash>
 +php artisan migrate:fresh --seed
 +</code>
 +
 +Konsola [[CLI]] Laravela
 +
 +<code bash>
 +php artisan tinker
 +</code>
 +
 +Ściąga z najważniejszymi poleceniami (pomijam ''php artisan'' na początku polecenia):
 +
 +^ Polecenie                        ^ Opis                                              ^
 +| make:controller PostsController  | Tworzy nowy kontroler                             |
 +| make:model Post -m               | Tworzy nowy model (-m dodaje migrację)            |
 +| route:list                       | Wypisuje aktualnie dostępny routing.              |
 +| db:seed                          | Wypełnia bazę danych danymi (DatabaseSeeder.php)  |
 +
 +===== Bootstrap i React =====
 +
 +Instalujemy ''laravel/ui'' za pomocą [[Composer]]. Do pobrania źródła może być potrzebny [[Git]].
 +
 +<code bash>
 +composer require laravel/ui
 +</code>
 +
 +Teraz można zainstalować [[Bootstrap]], [[React]] lub inne frameworki, np. [[Vue]].
 +
 +<code bash>
 +php artisan ui bootstrap
 +php artisan ui react
 +</code>
 +
 +Dodanie opcji ''auth'' w powyższych poleceniach stworzy szkielet do strony logowania/rejestracji.
 +
 +<code bash>
 +php artisan ui bootstrap --auth
 +</code>
 +
 +Instalujemy zależności.
 +
 +<code bash>
 +npm install
 +</code>
 +
 +Pozostało skompilować zasoby (oraz oczywiście dołączyć .css i .js z katalogu ''public'' w [[HTML]]).
 +
 +<code bash>
 +npm run dev
 +</code>
 +
 +lub
 +
 +<code bash>
 +npm run prod
 +</code>
 +
 +Można też monitorować zmiany w trybie ciągłym.
 +
 +<code bash>
 +npm run watch
 +</code>