LoginSignup
0
0

More than 1 year has passed since last update.

【Laravel】データベースのデータがブラウザに表示されない

Posted at

コントローラーで、データベースのデータを取得したいのに上手く取得できないため、そもそもの部分の理解のために備忘録を書きます。

前提

  • Todoアプリを作っております。
  • TodoController.phpのindexアクションが実行された時に、DBのtodosテーブルから全データを引っ張ってこれるようにしたい。

現状

コントローラ

todo-api/app/Http/Controllers/TodoController.php
<?php

namespace App\Http\Controllers;

use App\Models\Todo;
use Illuminate\Http\Request;

class TodoController extends Controller
{
    public function index()
    {
        $todoIndex = Todo::all();
        return $todoIndex;
        var_dump($todoIndex);
    }
}

モデル

todo-api/app/Models/Todo.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Todo extends Model
{
    use HasFactory;
}

マイグレーションファイル

todo-api/database/migrations/●●●●●●●●●●●●_create_todos_table.php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('todos', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->text('memo')->nullable();
            $table->smallInteger('status')->default(0);
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('todos');
    }
};

DBのテーブルの状態

スクリーンショット 2022-06-29 10.31.15.png

ルーティング

todo-api/
Route::controller(TodoController::class)->group(function () {
    Route::get('todo/index', [TodoController::class, 'index']);
});

ブラウザの画面

localhost:8000/todo/index にアクセスしてみると・・・

スクリーンショット 2022-06-29 10.25.46.png

なぜだろう。。。
あれ?これってもしかして、データベースにそもそもデータ追加していないから、空っぽだから[]が表示されている・・・?
Migrationでテーブルとカラムは作ったけど中身は作っていないし・・・

SQLでDB操作

中身チェック
SELECT * FROM todos
データ挿入
insert into todos values (1, '洗濯', 0);
中身チェック
SELECT * FROM todos

スクリーンショット 2022-06-29 10.52.29.png

データを追加できました!
ブラウザで再度確認してみると・・・

スクリーンショット 2022-06-29 10.53.10.png

しっかり返ってきました!
やはり、DBにデータがないだけでした(^^;)

0
0
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
0
0