PHP
laravel

Laravel データの取得と抽出

初心者メモ
基本操作

viewの作成の続き

Postのデータを全件取得してみる

app/Http/Controllers/PostsController.php
<?php

/* 名前空間 */
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PostsController extends Controller
{
  # indexアクションを定義
  public function index() {
   # データの取得
    $posts = \App\Post::all(); //Postのデータ全て$postsに代入(データ全件取得)
    return view('posts.index'); //view('ディレクトリ名.ファイル名');
  }
    //
}

追加内容:$hogehoge = \App\model::all();
この式で取得可能

PostsController.php
<?php

$posts = \App\Post::all();

?>

このコードでPostのデータ全件取得が可能になったが、名前空間(\App\Postの部分)が長くなってしまうのでuseを設定していく

use 設定:

PostsController.php追加
<?php
//useすることで名前空間に\App\Post::処理内容();等と書かないといけないものが、Post::処理内容();と省略できる
use App\Post; 

?>
PostsController.php編集後
<?php

/* 名前空間 */
namespace App\Http\Controllers;

 //use: 名前空間を省略化
use Illuminate\Http\Request;
use App\Post;

class PostsController extends Controller
{
  # indexアクションを定義
  public function index() {
   # データの取得
    $posts = Post::all(); //Postのデータ全て$postsに代入(データ全件取得)
    return view('posts.index'); //view('ディレクトリ名.ファイル名');
  }
    //
}

use App\Post; することで

$posts = Post::all(); ←のように省略して表現できるようになった

これでコードはスッキリ。

ここで一旦正しくデータが取得できたか確認してみる
・dd();というLaravelの機能を使って確認 (dump dieの略: デバックしてその場で処理を終了。みたいな感じ?)

dd($posts->ToArray()); で配列で表示させてみる

PostsController.php
//dd();を追加

  public function index() {
   # データの取得
    $posts = Post::all(); //Postのデータ全て$postsに代入(データ全件取得)
    dd($posts->ToArray()); 
    return view('posts.index'); //view('ディレクトリ名.ファイル名');
  }

この状態でブラウザを起動すると出力される
スクリーンショット 2018-05-13 18.35.27.png

スクリーンショット 2018-05-13 18.36.05.png

ちゃんと取得出来ていることを確認!!
問題なしですね。

取得データを降順にする

$posts = Post::all();

上記のコードを下記に変更すれば降順で表示される

$posts = Post::orderBy('created_at', 'desc')->get(); 

orderBy();を使う場合はallは無しで良い

ちなみに降順にする方法は他にもあって

posts = Post::latest()->get(); を使ってみる
これはposts = Post::orderBy('created_at', 'desc')->get();と同じ意味で省略された型

PostsController.php
  public function index() {
   # データの取得
    $posts = Post::latest()->get(); //Postのデータ全て$postsに代入(データ全件取得)
    dd($posts->toArray()); //dump die
    return view('posts.index'); //view('ディレクトリ名.ファイル名');
  }
$posts = Post::latest()->get();を使うと
idが2(最新)からに変更されている

スクリーンショット 2018-05-13 18.55.41.png

データの抽出確認がおわったのでdd();はコメントアウトするか削除しておく