Your SlideShare is downloading. ×
0
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
3 tips of Laravel
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

3 tips of Laravel

3,209

Published on

Laravel Meetup Tokyo vol.4 での発表資料です。

Laravel Meetup Tokyo vol.4 での発表資料です。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,209
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 3 tips of Laravel 2014.07.04 @kurikazu Laravel Meetup Tokyo vol.4 http://am4.jp/?p=124
  • 2. Kazuaki KURIU • twitter: @kurikazu • 所属: ディップ株式会社 • 求人広告サービスのWebサイト、 スマートフォンアプリの 開発マネジメントを担当 • 普段は「進捗どうですか」と 聞く方 • Laravel歴は1年くらい • 認定スクラムマスター (2011年6月受講)
  • 3. Laravel 4 で CMS 作りました
  • 4. 作った機能 • 管理系 • 記事登録(文字、画像) / 編集 / 削除 • 限定記事を見られる会員の管理 • 会員にメール一斉送信 • 閲覧系 • 一般記事 / 限定公開記事 の出し分け • ガラケー対応
  • 5. 今日の話 •CMSを作ってみて得られた LaravelのTipsをお裾分け
  • 6. 1.ペジネーション
  • 7. Laravelのペジネーション $users=DB::table('users')->paginate(10); $users=User::where('age','>',40)->paginate(10); Controllerとか
  • 8. Laravelのペジネーション $users=DB::table('users')->paginate(10); <div class="container"> <?php foreach ($users as $user): ?> <?php echo $user->name; ?>, <?php echo $user->age; ?> <?php endforeach; ?> </div> <?php echo $users->links(); ?> ←ペジネーション表示 $users=User::where('age','>',40)->paginate(10); Controller View
  • 9. 結果 << 1 2 3 4 5 6 7 8 ... 20 21 >> Yamada, 20 Tanaka, 31 Suzuki, 21 Honda, 45 Nomura, 12 Mori, 33 Takayama, 54 Takano, 23 Aoki, 61 Nishimura, 47
  • 10. 検索フォームでやってみる age: User Search Form Submit 30 over
  • 11. if (Input::has('age')){ $age = Input::get('age'); $users = User::where('age','>',$age)->paginate(3); } else { $users = User::all()->paginate(3);  } <div class="container">  <?php foreach ($users as $user): ?>  <?php echo $user->name; ?>  <?php endforeach; ?>  </div>  <?php echo $users->links(); ?> 検索フォームでやってみる
  • 12. 1ページ目 OK << 1 2 3 4 5 6 7 >> Tanaka, 31 Honda, 45 Mori, 33 User Search Result
  • 13. 2ページ目... << 1 2 3 4 5 6 7 8 ... 20 21 >> Honda, 45 Nomura, 12 Mori, 33 User Search Result 条件が引き 継がれない
  • 14. 原因 ページ数しか渡されない << 1 2 3 4 5 6 7 8 ... 20 21 >> Honda, 45 Nomura, 12 Mori, 33 User Search Result user/list?page=2
  • 15. 修正 <div class="container"> <?php foreach ($users as $user): ?>  <?php echo $user->name; ?>  <?php endforeach; ?>  </div>  <?php echo $users->appends(array('age' => $age))- >links(); ?> appends で条件も渡してやる
  • 16. 結果 検索条件を保持して遷移できる << 1 2 3 4 5 6 7 >> User Search Result Takayama, 54 Aoki, 61 Nishimura, 47 user/list? age=30&page=2
  • 17. 2. ガラケー対応
  • 18. やりたいこと Laravel PC スマホ ガラケー UTF-8 Shift_JIS
  • 19. やりたいこと Laravel PC スマホ ガラケー UTF-8 Shift_JIS ここで変換したい
  • 20. Before/Afterフィルタを使う 方法
  • 21. ガラケー → Laravel App::before(function($request) { if (ガラケーだったら) { // リクエストをUTF8に変換 $converted = 文字コード変換(Input::get());   Input::merge($converted);   } }); Filter.php UAは Request::server('HTTP_USER_AGENT') で取れる
  • 22. Laravel → ガラケー App::after(function($request, $response) { if (ガラケーだったら) { // 出力文字列を ShiftJIS に変換 $content = $response->getContent();    $content = mb_convert_encoding($content, 'SJIS', 'UTF-8');    $response->header('Content-Type', 'text/html; charset=Shift_JIS');    $response->setContent($content); } }); Filter.php getContent で取り出して 文字コード変換
  • 23. Laravel → ガラケー App::after(function($request, $response) { if (ガラケーだったら) { // 出力文字列を ShiftJIS に変換 $content = $response->getContent();    $content = mb_convert_encoding($content, 'SJIS', 'UTF-8');    $response->header('Content-Type', 'text/html; charset=Shift_JIS');    $response->setContent($content); } }); Filter.php デフォルトUTF8なので 設定を上書きする
  • 24. 3. TwitterにPOST
  • 25. やりたいこと 記事を更新した時にTwitterにPOST
  • 26. 方法 thuohn/twitter-l4 パッケージ https://github.com/thujohn/twitter-l4
  • 27. 設定方法  "thujohn/twitter": "dev-master" composer.jsonに下記の記載を追加  composer update 下記のコマンドを実行する
  • 28. 設定方法 'providers' => array(   'ThujohnTwitterTwitterServiceProvider', ) ... 'aliases' => array( 'Twitter' => 'ThujohnTwitterTwitterFacade', ) app/config/app.phpに下記の記載を追加 php artisan config:publish thujohn/twitter twitterパッケージの初期化を行う
  • 29. 設定方法 <?php // You can find the keys here : https://dev.twitter.com/ return array(     'API_URL'             => 'api.twitter.com',     'API_VERSION'         => '1.1',     'USE_SSL'             => true,     'CONSUMER_KEY'        => 'xxxxxxxxxxxxxxxxxxx',     'CONSUMER_SECRET'     => 'yyyyyyyyyyyyyyyyyyy',     'ACCESS_TOKEN'        => 'zzzzzzzzzzzzzzzzzzz',     'ACCESS_TOKEN_SECRET' => 'vvvvvvvvvvvvvvvvvvv', ); app/config/packages/thujohn/twitter/config.php
  • 30. POSTするときは...  Twitter::postTweet(array('status' => $message, 'format' => 'json'));
  • 31. おまけ. MismatchToken?
  • 32. 記事をPOSTする時にエラーが出た Route::filter('csrf', function() {   if (Session::token() != Input::get('_token'))   {    throw new IlluminateSessionTokenMismatchException;   } }); CSRFフィルタでトークンが一致しないエラー
  • 33. Input を見てみた dd(Input::all());
  • 34. array(0){} 空っぽでした...
  • 35. 原因 アップロードしようとしてた 画像ファイルの容量が upload_max_filesize を超えていた
  • 36. ちなみに
  • 37. 各環境へのデプロイは Capistrano で簡素化
  • 38. 簡単デプロイで たのしく 開発しよう
  • 39. 詳しくは以下で http://qiita.com/kurikazu/items/ e63bc30806aeb3214f93
  • 40. Enjoy Laravel !!!

×