Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Laravelのヘルパ関数とCollection #sa_study

680 Aufrufe

Veröffentlicht am

2018/03/22に開催されたARCANA Meetup#34の発表スライドです。

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Laravelのヘルパ関数とCollection #sa_study

  1. 1. Laravelのヘルパ関数と
 Collection 20180322@ARCANA Meetup#35 株式会社スタジオ・アルカナ�深澤 ひかり
  2. 2. Laravel • このスライドで使用している Laravel のバージョンは、5.5 です。
  3. 3. ヘルパ関数 • Laravelが標準で用意しているグローバル関数。 • みんながよくつかうconfig()や、old()もヘルパ関数。 • ヘルパ関数を使うと Laravel に依存することになるので、
 その点を理解してから使う。
  4. 4. Array
  5. 5. array_pluck $array = [ [ 'id' => 1, 'name' => '鈴木太郎', 'age' => 20 ], [ 'id' => 2, 'name' => '田中花子', 'age' => 19 ] ]; // id だけ取り出したい // foreach だと $result = []; foreach ($array as $value) { $result[] = $value['id']; } // array_pluck だと $result = array_pluck($array, ‘id’); // 結果:�[1, 2] // おまけ:id をキーに、値を name にしたい $result = array_pluck($array, 'name', ‘id'); // 結果:�[1 => '鈴木太郎', 2 => '田中花子']
  6. 6. array_where $array = [ [ 'id' => 1, 'name' => '鈴木太郎', 'age' => 20 ], [ 'id' => 2, 'name' => '田中花子', 'age' => 19 ] ]; // 20歳以下だけ取り出したい // foreach だと foreach ($array as $value) { if ($value['age'] < 20) { $result[] = $value; } } // array_where だと $result = array_where($array, function ($value) { return $value['age'] < 20; }); // 結果: // [[‘id’ => 2,'name' => '田中花子','age' => 19]]
  7. 7. Collect // collect関数は、指定した値からコレクションインスタンスを // 生成します。 $collection = collect(['1', '2']);
  8. 8. Collection
  9. 9. https://readouble.com/laravel/5.5/ja/collections.html
  10. 10. pluck Collection {#571 ▼ #items: array:3 [▼ 0 => array:3 [▼ "id" => 1 "name" => "鈴木太郎" "age" => 20 ] 1 => array:3 [▼ "id" => 2 "name" => "田中花子" "age" => 19 ] 2 => array:3 [▼ "id" => 3 "name" => "佐藤五郎" "age" => 19 ] ] } $collection->pluck(‘name’, ‘id’); Collection {#567 ▼ #items: array:2 [▼ 1 => "鈴木太郎" 2 => "田中花子" ] }
  11. 11. where Collection {#571 ▼ #items: array:2 [▼ 0 => array:3 [▼ "id" => 1 "name" => "鈴木太郎" "age" => 20 ] 1 => array:3 [▼ "id" => 2 "name" => "田中花子" "age" => 19 ] ] } $collection->where('age', '<', ’20'); Collection {#573 ▼ #items: array:1 [▼ 1 => array:3 [▼ "id" => 2 "name" => "田中花子" "age" => 19 ] ] }
  12. 12. filter Collection {#571 ▼ #items: array:2 [▼ 0 => array:3 [▼ "id" => 1 "name" => "鈴木太郎" "age" => 20 ] 1 => array:3 [▼ "id" => 2 "name" => "田中花子" "age" => 19 ] ] } $collection->filter(function ($value, $key) { return $value['age'] < 20; }); Collection {#573 ▼ #items: array:1 [▼ 1 => array:3 [▼ "id" => 2 "name" => "田中花子" "age" => 19 ] ] }
  13. 13. https://readouble.com/laravel/5.5/ja/collections.html
  14. 14. まとめ • 車輪の再発明を防ごう。 • 使うときは、デメリットも把握した上で使用する。
 (プロジェクトによっては確認したほうがよいのかも?)

×