laravel workshops 1

25
Laravel Workshops Software House Warsztaty dla początkujących

Upload: kamil-fojuth

Post on 15-Apr-2017

283 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: Laravel workshops 1

Laravel Workshops

Software House

Warsztaty dla początkujących

Page 2: Laravel workshops 1

Software House

WiFi :)

network: APIPpassword: apip@ppnt!

Page 3: Laravel workshops 1

2003 - PRESENT

desmart

desmartcom

desmartcom

Page 4: Laravel workshops 1

Kamil Fojuth

Software House

fojuth

2012 - PRESENT

fojuth

Page 5: Laravel workshops 1

Software House

Dlaczego Laravel?

Page 6: Laravel workshops 1

Software House

Co będziemy robić?

- prosty blog (szok!)- MVC- CRUD- http://laravel.com/docs/5.0

Page 7: Laravel workshops 1

Software House

Wszyscy gotowi?Można zaczynać?

- projekt postawiony? działa?- baza danych jest?

Page 8: Laravel workshops 1

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

Page 9: Laravel workshops 1

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

Page 10: Laravel workshops 1

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.

Page 11: Laravel workshops 1

Software House

MigracjeObie migracje gotowe? To odpalamy!

php artisan migrate

Coś poszło nie tak? Cofamy ostatnią migrację!

php artisan migrate:rollback

Page 12: Laravel workshops 1
Page 13: Laravel workshops 1

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

Page 14: Laravel workshops 1

Software House

MVC

Page 15: Laravel workshops 1

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

Page 16: Laravel workshops 1

Software House

Filtry / MiddlewareRoute::group(['middleware' => ['auth']], function(){ Route::get('/', function() { // User musi być zalogowany });});

Page 17: Laravel workshops 1

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.

Page 18: Laravel workshops 1

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)

Page 19: Laravel workshops 1
Page 20: Laravel workshops 1

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

Page 21: Laravel workshops 1

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

Page 22: Laravel workshops 1

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

Page 23: Laravel workshops 1

Software House

Dziękuję!

Page 24: Laravel workshops 1
Page 25: Laravel workshops 1

Software House

Podobało się?

Kolejne warsztaty zależą od Was!