Webサービス開発

エックスサーバーでWebサービスを作る(その5)MySqlからデータ取得

DB接続情報記載

.envのmysql部分に接続情報を記載する。

DB_CONNECTION=mysql
DB_HOST=XXX.XXX.XXX.XXX
DB_PORT=3306
DB_DATABASE=DB名
DB_USERNAME=ユーザー名
DB_PASSWORD=パスワード

ちなみに、「config/database.php」というファイルがあるがこれは修正する必要がない。「 config/database.php 」から「.env」を見に行っている。

モデルクラス作成

artisanコマンドでモデルクラスを作成。

php artisan make:model Models/Menu_roulette

Models/Menu_roulette.phpを修正

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class Menu_roulette extends Model
{
    protected $table = 'menu_roulette';

    public function getAll()
    {
      $data = DB::table($this->table)->get();
      return $data;
    }
}

コントローラからモデルのファンクションを呼び出してデータ取得

app/Http/Controllers/PagesController.php

<?php

namespace App\Http\Controllers;

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

class PagesController extends Controller
{
    public function getHome(){
        $md = new Menu_roulette();
        $menuList = $md->getAll();
        return view('home', ['menuList' => $menuList]);
    }
}

テンプレート側で受け取ったデータを表示

作成済のテンプレート resources/views/home.blade.phpに、コントローラから受け取ったデータを表示するコードを記載 。

@foreach($menuList as $value)
  {{$value->title}}
@endforeach

ページに、DBから取得したデータが表示されることを確認。

インデックスページ

ABOUT ME
hazukei
「はずけい」と申します。 この度一児の父となりました。まだ実感はわかないのですが、猛烈に忙しくなりそうです。楽しみつつ頑張りたいと思います!