Laravel7 DBクラスを利用して、DBと接続してテーブルの値を表示する
Laravelでデータベースを利用する時に使用するクラス「DBクラス」の簡単な使い方を記述してます。ここでは、事前にテーブルを作成してレコードを表示するまでのサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Composer 1.10.5
- PHP 7.4.5
- MariaDB 10.4.12
- Laravel Framework 7.6.2
※windows10に Laravel のインストールはこちら
※windows10に Composer のインストールはこちら
※windows10に PHP のインストールはこちら
※windows10に MariaDB のインストールはこちら
テーブル作成
接続するDBにテーブルを作成しておきます。
ここではitemsテーブルというテーブルを作成してます。
CREATE TABLE if not exists items (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL ,
price INT(8) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
)
適当なデータも作成しておきます。
INSERT INTO items (NAME,price)
VALUES ("item1",100),("item2",200),("item3",300);
コントローラー作成
まずはコントローラーを作成します。
php artisan make:controller ItemsController
app/Http/Controllers/ItemsController.phpが作成されるので、
ここでDBクラスを使用してitemsテーブルからレコードを取得します。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class ItemsController extends Controller
{
public function index()
{
$items = DB::select('select * from items');
$data = ['items' => $items];
return view('items.index', $data);
}
}
ビュー作成
次にレイアウト部であるviewを作成します。
resources\views内で「items」というフォルダを作成して「index.blade.php」を下記の内容で、新たに作成します。
<ul>
@foreach ($items as $item)
<li>商品名:{{ $item->name }} 価格:{{ $item->price }}</li>
@endforeach
</ul>
{{$item->name}}と{{ $item->price }}が、コントローラーから渡されたレコード情報が出力される箇所となります。
ルーティング追加
最後にアクセスするURLを設定するため、ルーティングを記述します。
ここでは/itemsに設定します。
Route::get('/items', 'ItemsController@index');
確認
ブラウザから http://localhost:8000/items にアクセスして、itemsテーブルのレコードが出力されていることが確認できます。
-
前の記事
Windows10 IntelliJ IDEAをインストールしてkotlinを実行する 2020.05.08
-
次の記事
Nuxt.js ライブラリ「vue-mention」を使用してメンション(Mentions)機能を実装する 2020.05.09
コメントを書く