laravel workshops 1
TRANSCRIPT
Laravel Workshops
Software House
Warsztaty dla początkujących
Software House
WiFi :)
network: APIPpassword: apip@ppnt!
2003 - PRESENT
desmart
desmartcom
desmartcom
Kamil Fojuth
Software House
fojuth
2012 - PRESENT
fojuth
Software House
Dlaczego Laravel?
Software House
Co będziemy robić?
- prosty blog (szok!)- MVC- CRUD- http://laravel.com/docs/5.0
Software House
Wszyscy gotowi?Można zaczynać?
- projekt postawiony? działa?- baza danych jest?
Software House
.env
- co to jest? do czego to?- dlaczego nie możemy tego commit'nąć do repo?- wypełniamy dane dotyczące MySQL
cp .env.example .env
DB_HOST=localhostDB_DATABASE=desmart_workshopDB_USERNAME=rootDB_PASSWORD=pwd
Software House
Migracje i seed'y- http://laravel.com/docs/5.0/migrations- czym są migracje? po co to?- seed'y? wat?- artisan - nasz przyjaciel
Software House
Migracjephp artisan make:migration create_table_foo_bar;
$table->increments('id');$table->string('varchar_column_title');$table->text('text_column_title');
$table->integer('post_id')->unsigned();$table->foreign('post_id')->references('id')->on('posts');
Pamiętamy, aby utworzyć również "rollback" dla każdej migracji.
Software House
MigracjeObie migracje gotowe? To odpalamy!
php artisan migrate
Coś poszło nie tak? Cofamy ostatnią migrację!
php artisan migrate:rollback
Software House
Seed'ySeed'y to klasy ułatwiające wypełnienie bazy przykładowymi danymi.
Ale po co? Pomagają np. testerom - możemy "odświeżyć" bazę danych, przywracając ją do określonego stanu. Szczególnie przydatne w przypadku testów automatycznych (np. Selenium).
php artisan db:seed
Software House
MVC
Software House
Trasy / Routes
Route::any('/welcome', function(){
return 'Welcome!';});
Route::get('/foo', 'FooController@index');
Route::post('/user/{id}/edit', 'UserController@update');
Route::resource('photo', 'PhotoController');
app/Http/routes.php
Software House
Filtry / MiddlewareRoute::group(['middleware' => ['auth']], function(){ Route::get('/', function() { // User musi być zalogowany });});
Software House
Model
Post::all();Post::find(3);
$post = Post::where('title', '=', 'Cool Story')->first();$post->title = 'New title';$post->save();
http://laravel.com/docs/5.0/eloquent
Model jest reprezentacją tabeli w bazie danych.
Software House
PostControllerhttp://laravel.com/docs/5.0/controllers
Model: app/Post.php, app/Comment.phpView: resources/views/posts/index.blade.phpController: app/Http/Controllers/PostController.php
- trasa /posts ma zwracać widok posts/index.blade.php- do widoku trzeba przekazać wszystkie posty (jako $posts)
Software House
- trasa /posts/create (GET) ma zwracać widok posts/create.blade.php
- trasa /posts/create (POST) ma tworzyć nowy wpis- po utworzeniu nowego wpisu ma nastąpić przekierowanie na widok z
listą wpisów
Dodawanie wpisu
Software House
Usuwanie wpisu- na liście wpisów ma być guzik do usuwania wpisu- trasa /posts/{id}/delete ma usuwać wpis- po usunięciu wpisu ma nastąpić przekierowanie na widok z listą
wpisów
Software House
- na liście wpisów ma być guzik do edycji wpisu- trasa /posts/{id} (GET) ma wyświetlać formularz edycji
wpisu- trasa /posts/{id} (POST) ma zapisać zmiany- po zapisie zmian ma nastąpić przekierowanie na widok z listą wpisów
Można zmodyfikować istniejący widok posts/create.blade.php lub utworzyć nowy.
Formularz powinien być wypełniony aktualnymi danymi. Jak to zrobić?
Edycja wpisu
Software House
Dziękuję!
Software House
Podobało się?
Kolejne warsztaty zależą od Was!