====== データベースへのアクセス ======
[[:laravel|一つ上へ]]
データベースのアクセス情報を''.env''ファイルに記載する。
ファイルはプロジェクトのルートディレクトリにある。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_username
DB_PASSWORD=db_password
''app/routes/web.php''にルートを追加する。
user_infoテーブルからnameのみを抽出する場合を想定する。
SELECT文を実行した結果をnameに格納し、lsqlというビューにresultとして渡す。
Route::get('lsql', function () {
$name = DB::select('select name from user_info;');
return view('lsql', ['results'] => $name]);
});
次に''resources/view/lsql.blade.php''に以下のように記載する。
@foreach ($results as $a)
- {{ $a->name }}
@endforeach
もし、''MySQL could not find driver''と表示される場合は、pdo_mysqlドライバがインストールされていない。
Oracle Linux の場合は以下のようにインストールする。
dnf install php-mysqlnd
===== モデルを作成する方法 =====
以下のコマンドでモデルを作成する.
php artisan make:model Item
これで''app/Models''ディレクトリ内にItem.phpが生成される。
このファイルに使用するテーブル名を記載する。
次に、ルートを作成する。''routes/web.php''を編集
Route::get('/lsql', 'App\Http\Controllers\LSQLController@index');
を追加する。
''app/Http/Controllers/LSQLController.php''を編集する
get();
return view('lsql', ['results' => $items]);
}
}
ここでは10件のみ取得するようにし、lsql.blade.php側でresultsで取得するようにしている。
ビュー側では、これを取得して表示するよう記載する
@foreach ($results as $a)
- {{ $a->col_name }}
@endforeach