Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
シシ
Uploaded by
シオリ ショウノ
PDF, PPTX
454 views
Laravel 5.3 で basic task list を作ろう!
2016/10/15 コミュニティ「laravel.osaka」での初心者向けハンズオン資料です。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 40
2
/ 40
3
/ 40
4
/ 40
5
/ 40
6
/ 40
7
/ 40
8
/ 40
9
/ 40
10
/ 40
11
/ 40
12
/ 40
13
/ 40
14
/ 40
15
/ 40
16
/ 40
17
/ 40
18
/ 40
19
/ 40
20
/ 40
21
/ 40
22
/ 40
23
/ 40
24
/ 40
25
/ 40
26
/ 40
27
/ 40
28
/ 40
29
/ 40
30
/ 40
31
/ 40
32
/ 40
33
/ 40
34
/ 40
35
/ 40
36
/ 40
37
/ 40
38
/ 40
39
/ 40
40
/ 40
More Related Content
PDF
日本語ではじめるDrupal Console
by
Yoshikazu Aoyama
PDF
日本語ではじめるDrupal Console in Sapporo
by
Yoshikazu Aoyama
PDF
Pyramid入門
by
Atsushi Odagiri
PDF
Rails Controller Fundamentals
by
Takashi SAKAGUCHI
PDF
Hachioji.pm11
by
Hon Dallica
PDF
今よりも少し(?)昔、 Windowsを作ろうとした話
by
Masaru Oki
PPTX
Drupalテーマとthemingの基礎
by
Kenji Shirane
PPTX
チャット
by
Solur
日本語ではじめるDrupal Console
by
Yoshikazu Aoyama
日本語ではじめるDrupal Console in Sapporo
by
Yoshikazu Aoyama
Pyramid入門
by
Atsushi Odagiri
Rails Controller Fundamentals
by
Takashi SAKAGUCHI
Hachioji.pm11
by
Hon Dallica
今よりも少し(?)昔、 Windowsを作ろうとした話
by
Masaru Oki
Drupalテーマとthemingの基礎
by
Kenji Shirane
チャット
by
Solur
What's hot
PDF
FuelPHPでのファイルアップロード
by
kenjis
PDF
Osc2014
by
Soudai Sone
PDF
第21回Creators MeetUp
by
Kenichi Mukai
PDF
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
by
Katsuhisa Ogawa
PDF
101210 supreme web adobe seminar Nagoya
by
tamotsu toyoda
PDF
RubyとDSLと メタプログラミングと
by
xiidec
PPTX
Web 09
by
XMLProJ2014
PDF
DrupalとMySQL
by
yoyamasaki
FuelPHPでのファイルアップロード
by
kenjis
Osc2014
by
Soudai Sone
第21回Creators MeetUp
by
Kenichi Mukai
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
by
Katsuhisa Ogawa
101210 supreme web adobe seminar Nagoya
by
tamotsu toyoda
RubyとDSLと メタプログラミングと
by
xiidec
Web 09
by
XMLProJ2014
DrupalとMySQL
by
yoyamasaki
Similar to Laravel 5.3 で basic task list を作ろう!
PPTX
<第1回>Laravelハンズオンセミナー
by
Tatsuyoshi Mashiko
PDF
魔法少女 Laravel
by
Kenichi Mukai
PDF
Laravel4 Happy Hacking
by
Takashi Ohida
PDF
Creators meetup5
by
Kenichi Mukai
PDF
What's Temporal model FuelPHP東京勉強会03
by
Takayuki Yamaguchi
PDF
10分でわかるFuelPHP @ 2011/12
by
kenjis
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
by
kenjis
PDF
第104回 php勉強会@東京 Laravel
by
JunKeun Lee
PDF
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
by
kenjis
KEY
FuelPHPをさわってみて
by
Sotaro Omura
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
by
gree_tech
PDF
Laravel shibuya 3 Laravel Beginner IRT
by
Obata Masaki
PPTX
転職とLaravel
by
kasikasikasi
PDF
Laravel5を使って開発してみた
by
Takeo Noda
PPTX
Laravel本とコミュニティの話
by
Kazuaki KURIU
PDF
Laravel × レイヤードアーキテクチャをやってみている話
by
Shohei Okada
PPTX
〜laravel で学ぶ MVC
by
mikakane
PDF
3 tips of Laravel
by
Kazuaki KURIU
PDF
Laravel 5.1 LTSでサービスを作る
by
infinite_loop
PDF
Laravelの検索機能の実装方法
by
yoshitaro yoyo
<第1回>Laravelハンズオンセミナー
by
Tatsuyoshi Mashiko
魔法少女 Laravel
by
Kenichi Mukai
Laravel4 Happy Hacking
by
Takashi Ohida
Creators meetup5
by
Kenichi Mukai
What's Temporal model FuelPHP東京勉強会03
by
Takayuki Yamaguchi
10分でわかるFuelPHP @ 2011/12
by
kenjis
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
by
kenjis
第104回 php勉強会@東京 Laravel
by
JunKeun Lee
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
by
kenjis
FuelPHPをさわってみて
by
Sotaro Omura
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
by
gree_tech
Laravel shibuya 3 Laravel Beginner IRT
by
Obata Masaki
転職とLaravel
by
kasikasikasi
Laravel5を使って開発してみた
by
Takeo Noda
Laravel本とコミュニティの話
by
Kazuaki KURIU
Laravel × レイヤードアーキテクチャをやってみている話
by
Shohei Okada
〜laravel で学ぶ MVC
by
mikakane
3 tips of Laravel
by
Kazuaki KURIU
Laravel 5.1 LTSでサービスを作る
by
infinite_loop
Laravelの検索機能の実装方法
by
yoshitaro yoyo
More from シオリ ショウノ
PDF
Notificationsを使ったSlack通知
by
シオリ ショウノ
PDF
肌で感じたディレクションとマネジメント
by
シオリ ショウノ
PDF
Vue.jsで遊んでみよう
by
シオリ ショウノ
PDF
PHPカンファレンス関西2017 スポンサー募集中!
by
シオリ ショウノ
PDF
Gulpで学ぶSassとPug
by
シオリ ショウノ
PDF
ハンズオン入門
by
シオリ ショウノ
PDF
ServiceとRepository
by
シオリ ショウノ
PDF
Webpackにトライ 基本編
by
シオリ ショウノ
PDF
Carbonライブラリとちゃんと向き合ってみる
by
シオリ ショウノ
PDF
Laravelの5.3の新機能
by
シオリ ショウノ
PDF
20160422 laravel.osaka
by
シオリ ショウノ
Notificationsを使ったSlack通知
by
シオリ ショウノ
肌で感じたディレクションとマネジメント
by
シオリ ショウノ
Vue.jsで遊んでみよう
by
シオリ ショウノ
PHPカンファレンス関西2017 スポンサー募集中!
by
シオリ ショウノ
Gulpで学ぶSassとPug
by
シオリ ショウノ
ハンズオン入門
by
シオリ ショウノ
ServiceとRepository
by
シオリ ショウノ
Webpackにトライ 基本編
by
シオリ ショウノ
Carbonライブラリとちゃんと向き合ってみる
by
シオリ ショウノ
Laravelの5.3の新機能
by
シオリ ショウノ
20160422 laravel.osaka
by
シオリ ショウノ
Laravel 5.3 で basic task list を作ろう!
1.
Laravel 5.3 で Basic
Task List を 作ろう!
2.
“最近良く耳にする “Laravel”
3.
You can find
me at: @username user@mail.me 最近 PHP 界隈で人気のフレームワーク https://laravel.com/
4.
Laravel ❖ 更新が頻繁にされている(最新は 5.3
) ❖ 機能豊富 ❖ シンプルで軽い兄弟フレームワーク Lumen もある ❖ テンプレートエンジンを使って画面を拡張できたり、 Eloquent を使って DB 操作が簡単にできたり・・・ ❖ 生の PHP がかけなくても結構なんとかなる
5.
川瀬裕久さんの日本語版ドキュメントもおすすめ https://readouble.com/laravel/
6.
とはいえ You can find
me at: @username user@mail.me
7.
自分で勉強するのって大変! You can find
me at: @username user@mail.me
8.
なので一緒に勉強しましょう! You can find
me at: @username user@mail.me
9.
ハンズオンするひと ショウノシオリ ❖ 株式会社 chatbox ❖
エンジニア ❖ Qiita : @shosho ❖ Laravel はじめて 8ヶ月ぐらい
10.
つくるもの ❖ タスクの追加 ❖ タスクの削除 ❖
タスクの一覧表示 ができるシンプルなtodoリスト
11.
デモ You can find
me at: @username user@mail.me
12.
進め方について ❖ Laravel 5.2
のドキュメントを使用 ❖ コピーするコードはGistに記載 ❖ 概要はQiitaに書いてあります (URL は connpass のコメントに貼ってます) docs : https://laravel.com/docs/5.2/quickstart Gist : https://gist.github.com/sshono1210/e42663e1b7312047132e588cf5cd7408 Qiita : http://qiita.com/shosho/items/f34276561a342dc85180
13.
学ぶこと 1. インストール /
DB の設定(環境構築) 2. ルート / 画面の作り方(画面の表示) 3. マイグレーション / Eloquent ORM(DB 操作) 4. 実装(タスクの追加・削除)
14.
1. インストール / DBの設定 Composer
を使ったLaravel をインストール
15.
Composer のインストール ❖ 公式サイト ❖
インストール済みの場合は スキップ
16.
Laravel のインストール ❖ Composer
を使って Laravel のプロジェクトをインストール ❖ Laravelは ライブラリの依存関係を Composer で管理している ❖ http://localhost:8000 にホーム画面が表示される # quickstart のダウンロード $ composer create-project laravel/laravel quickstart --prefer-dist # ディレクトリに移動、 Composerのインストール cd ~/quickstart $ composer install # サーバーを起動 $ php artisan serve
17.
DB 接続先の変更 ❖ 今回はさっくり作りたいので
SQLite を使用 ❖ .env の DB_CONNECTION を sqlite に変更 ❖ その他の DB 周りの設定をコメントアウト # .env DB_CONNECTION=sqlite #DB_HOST=127.0.0.1 #DB_PORT=3306 #DB_DATABASE=homestead #DB_USERNAME=homestead #DB_PASSWORD=secret .env
18.
SQLite ファイルの作成 ❖ database.sqlite
は SQLite を動かすために必要なファイル ❖ database ディレクトリ内に database.sqlite をつくる # SQLite ファイルの作成 $ touch database/database.sqlite
19.
2. ルート / 画面の作り方 画面の表示とテンプレートエンジン
Blade
20.
ルートをつくる ❖ Gist の
createRouting.txt を routes / web.php にコピー ❖ アプリケーションの url などを書くファイル ❖ 今回はタスクの「一覧表示」「追加」「削除」の3つを生やす Route::get('/', function () { // }); Route::post('/task', function () { // }); Route::delete('/task/{task}', function () { // }); web.php
21.
画面(ビュー)をつくる ❖ テンプレートエンジン Blade
が使える ❖ .php も使用可能 ❖ Blade を使うとレイアウトの部品化が可能 ➢ 子ビューが親ビューを継承できる ➢ ヘッダーなどの共通部分を読み込める
22.
テンプレートエンジン Blade について ❖
拡張子は .blade.php ❖resources/views ディレクトリ内に(.phpも同様) ❖ データの埋め込みは {{ $hoge }} ❖ コメントは {{--コメント--}} で書く (HTMLには吐き出されない) ❖ 詳しくはドキュメントの Blade Templates を参照
23.
エラー用のビューをつくる ❖ エラー時に表示するメッセージ(共通部品)用のビュー ❖ resources/views
に新しいディレクトリ common を作成 ❖ 中に errors.blade.php を作成 ❖ Gist の errors.txt のコードをコピー
24.
親ビューをつくる ❖ レイアウトのベースとなるビュー ❖resources/views に新しいディレクトリ
layouts を作成 ❖中に app.blade.php を作成 ❖ Gist の createParent.txt のコードをコピー
25.
子ビューをつくる ❖ 各ページのメインコンテンツ部分 ❖ resources/views
の中に task.blade.php を作成 ❖Gist の createChild.txt のコードをコピー
26.
子ビューの構造について解説 ❖ @extends でどのビューを親にするかを指定(継承) ❖
@include で共通部品を読み込んでいる ❖ @section(‘content’) 部分が親ビューの @yield(‘content’) に挿 入される感じ ❖ ビューの階層は .(ドット)で表す @extends(‘layouts.app’) @section(`content`) ・・・ @include(‘common.errors’) @endsection task.blade.php
27.
3. マイグレーション / Eloquent ORM Laravel
を使った DB の運用・管理
28.
マイグレーションファイルをつくる ❖ テーブルの設計図となるファイル ❖ このファイルをもとにマイグレーションが実行される ❖
database/migrations の中に xxxx..._create_tasks_table.php が できる # マイグレーションファイルの作成 $ php artisan make:migration create_tasks_table --create=tasks
29.
❖ Gist の
addColumn.txt をさっき作ったファイルの public function up(){} 内に置き換え ❖ up() はテーブル作成、down()はテーブル削除の内容 ❖ デフォルトでidとtimestampsが設定されているので、新たにnameという 項目を追加する public function up() { Schema::create(‘tasks’, function(Blueprint $table){ $table->increments(‘id’); $table->string(‘name’); // 追加 $table->timestamps(); }); } xxxx..._create_tasks_table.php.php ファイルを編集する
30.
マイグレーションの実行 ❖ マイグレーションファイルをもとにテーブルができる ❖ マイグレーションファイルを編集したら必ず巻き戻してからマイグレーションを 実行し直すこと(refresh) #
マイグレーションの実行 $ php artisan migrate # マイグレーションコマンド $ php artisan migrate:install // migrationsファイルのみ作成 $ php artisan migrate:rollback // 直近のマイグレーション巻き戻し $ php artisan migrate:reset // 全てのマイグレーション巻き戻し $ php artisan migrate:refresh // migration:reset後、マイグレーション $ php artisan migrate:status // マイグレーション実行状況を確認
31.
Eloquent ORM をつくる ❖
DB 操作を簡単にできる Model クラス ❖ 上記コマンドで app/Task.php ができる(使用方法は後述) ❖ とりあえず作るだけ。実装はあとで。 # Eloquentモデルの作成 $ php artisan make:model Task
32.
4. 実装 バリデーション、Eloquent を使った DB
操作
33.
ルート内でクラスのuse宣言する ❖ Gist の
use.txt を web.php の最初のところにコピー ❖ ルート内でクラスを使用する場合は use 宣言しないと使えない # routes/web.php の一番はじめに追加( <?php のすぐ下に) Use AppTask; Use IlluminateHttpRequest; web.php
34.
タスク追加時のバリデーションを追加 ❖ Gist の
validation.txt のコードを /task のルートにコピー ❖ name について10文字以下になるようなバリデーションをかける ❖ バリデーションに引っかかれば / にリダイレクト ❖ () 内にRequest クラスを変数として使うように記述 Route::post(‘/task’, function(Request $reauest){ $validator = Validator::make($request->all(), [ 'name' => 'required|max:10', ]); if ($validator->fails()) { return redirect('/') ->withInput() ->withErrors($validator); } ・・・ web.php
35.
Eloquent を使ってタスクを追加 ❖ Gist
の addTask.txt のコードを先程のバリデーションの下に追加 ❖ Eloquent モデル Task.php を使ってタスクを作成 ❖ save メソッドで保存 ❖ 作成後 / にリダイレクト Route::post(‘/task’, function(Request $request){ ・・・バリデーションのコード・・・ $task = new Task; $task->name = $request->get(‘name’); $task->save(); return redirect('/'); web.php
36.
Eloquent でタスクを取得する ❖ Gist
の getTask.txt を web.php の / にコピー ❖ orderBy は並び替えるメソッド、最後に get( ) で呼び出すこと ❖ 第二引数で昇順(asc)、降順(desc)が指定できる ❖ view 関数の第二引数に配列でデータを渡すとビューで使える Route::get('/', function () { $tasks = Task::orderBy('created_at', 'asc')->get(); return view('task', [ 'tasks' => $tasks // このデータがtask.blade.phpで使える ]); }); web.php
37.
取得したタスクを一覧表示 ❖ Gist の
currentTasks.txt を task.blade.php に追加 ❖ ビュー側でデータを表示するときは {{ $tasks }} ❖ @if で条件分岐、@foreach でループを回すことができる @if(count($tasks) > 0) ・・・ @foreach ($tasks as $task) ・・・ @endforeach @endif task.blade.php
38.
削除ボタンの追加 ❖ Gist の
deleteButton.txt を task.blade.php にコピー ❖ 削除ボタンを押すと DELETE/task リクエストが送られる <tr> ・・・ <td> <form action="{{ url('task/'.$task->id) }}" method="POST"> {{ csrf_field() }} {{ method_field('DELETE') }} <button type="submit" class="btn btn-danger"> <i class="fa fa-trash"></i> Delete </button> </form> </td> </tr> task.blade.php
39.
Eloquent でDBのタスクを削除 ❖ Gist
の deleteTask.txt を web.php の /task/{task} に追加 ❖ Eloquent の delete メソッドでDBのタスクを削除 Route::delete('/task/{task}', function (Task $task) { $task->delete(); return redirect('/'); }); web.php
40.
Thanks! Any questions? You can
find me at: @username user@mail.me
Download