初心者メモ
基本操作
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('ディレクトリ名.ファイル名');
}
ちゃんと取得出来ていることを確認!!
問題なしですね。
取得データを降順にする
$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(最新)からに変更されている
データの抽出確認がおわったのでdd();はコメントアウトするか削除しておく