[PHP]LaravelでDB接続(一覧取得)

どうも、姓はアスニピース。名はざわです

さて前回のLaravelはじめの記事書いたのでその続きでDBアクセスです。
今回はMySQL使って簡単に試してます

やること

  1. .envの修正
  2. Modelの作成(テーブルとマッピング)
  3. Router + 画面の設定

.envの修正

環境に合わせて修正

(省略)

DB_CONNECTION=mysql
# DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=hoge
DB_USERNAME=hoge
DB_PASSWORD=hoge

(省略)

Modelの作成

appディレクトリの直下に {テーブル名}.php ファイルを作成します。

userテーブルの場合、app/User.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = 'user';
}

Modelの使い方はここ(公式)

Routerから呼び出す

routes/web.phpを修正

  1. Modelクラス追加
  2. URLの追加
<?php

use App\User; // 追加

Route::get('/', function () {
    return view('welcome');
});

// 以下追記
Route::get('/users', function () {
    //$datas =DB::select('select * from user');
    $datas = User::all(); //全件取得
    return view('hoge',[
        'datas'=>$datas
    ]);
});

hoge.blade.phpの追加

resources/view/hoge.blade.phpを追加して画面を作成します

userテーブルのuser_nameカラムを一覧表示させてみます

<!doctype html>
<html lang="{{ app()->getLocale() }}">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Laravel</title>
    </head>
    <body>
        @foreach ($datas as $user)
            <li>{{ $user->user_name }}</li>
        @endforeach
    </body>
</html>

起動/確認

起動

$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>

http://localhost:8000/usersにブラウザからアクセスしてみる 

表示できてますね!
でわ

サーバサイドエンジニア。オムライスが好物

シェアする

  • このエントリーをはてなブックマークに追加

フォローする