データベースのアクセス情報を.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
に以下のように記載する。
<html> <body> <ul> @foreach ($results as $a) <li>{{ $a->name }}</li> @endforeach </ul> </body> </html>
もし、MySQL could not find driver
と表示される場合は、pdo_mysqlドライバがインストールされていない。
Oracle Linux の場合は以下のようにインストールする。
dnf install php-mysqlnd
以下のコマンドでモデルを作成する.
php artisan make:model Item
これでapp/Models
ディレクトリ内にItem.phpが生成される。
このファイルに使用するテーブル名を記載する。
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Item extends Model { protected $table = 'table_name'; <=これを書き加える }
次に、ルートを作成する。routes/web.php
を編集
Route::get('/lsql', 'App\Http\Controllers\LSQLController@index');
を追加する。
app/Http/Controllers/LSQLController.php
を編集する
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Item; class LSQLController extends Controller { public function index() { $items = Item::limit(10)->get(); return view('lsql', ['results' => $items]); } }
ここでは10件のみ取得するようにし、lsql.blade.php側でresultsで取得するようにしている。
ビュー側では、これを取得して表示するよう記載する
<html> <body> <ul> @foreach ($results as $a) <li>{{ $a->col_name }}</li> @endforeach </ul> </body> </html>