LoginSignup
3
1

More than 5 years have passed since last update.

Laravel データの取得と抽出

Last updated at Posted at 2018-05-13

初心者メモ
基本操作

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();はコメントアウトするか削除しておく

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1