LaravelからMAMPを使ってDB接続する方法


前提

自分用メモです
Laravelインストール済み
mampインストール済み

動作環境

macバージョン11.4
Laravel6.20
MAMP6.3
PHP7.4

phpMyAdminでデータベースの作成

今回は以下のように作成
データベース名:mydeb
テーブル名:memos

Bladeを使ったページの作成

Laravelapp(自分が作成したディレクトリ)/resources/views内に「test.blade.php」というファイルを作成

~~略
<body>

    <table>
        @foreach ($memos as $memo)
            <tr>
                <td>{{$memo->id}}</td>
                <td>{{$memo->memo}}</td>
            </tr>
        @endforeach
    </table>

</body>

Controllerの作成

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class MemoController extends Controller
{
    public function index(){
        $memos = DB::select('select * from memos');
        return view('memo',['memos' => $memos]);
    }

}

useでnamespaceに

use Illuminate\Support\Facades\DB;

 を追加するのがポイントのようです。

web.phpのRouteを編集

Route::get('memo', 'MemoController@index');

これで接続した際に、MemoControllerのindexの実行ですね。

.envファイルを編集

Laravelapp/.envで以下のように設定

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=mydb
DB_USERNAME=root
DB_PASSWORD=root

database.phpファイルの編集

Laravelapp/config/database.phpを開き、以下の部分を編集。

'default' => env('DB_CONNECTION', 'mysql'),

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '8889'),
            'database' => env('DB_DATABASE', 'mydb'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'root'),
]

マイグレーションの実行

php artisan migrate

これで完了です。

マイグレーションについて、まだ理解しきれていないので、別記事でまとめてみます。