Laravel7 Eloquentを利用して、DBと接続してテーブルの値を表示する
![Laravel7 Eloquentを利用して、DBと接続してテーブルの値を表示する](https://mebee.info/wp-content/uploads/2019/09/laravel1-890x500.png)
LaravelのORM(オブジェクト関連マッピング )を実装した「Eloquent」を利用して、データベースを利用する手順を記述してます。ここでは、事前にテーブルを作成してレコードを表示するまでのサンプルコードを記述してます。
環境
- 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にテーブルを作成しておきます。
ここではitemlistsテーブルというテーブルを作成してます。
CREATE TABLE if not exists itemlists (
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 itemlists (NAME,price)
VALUES ("item1",100),("item2",200),("item3",300);
モデル作成
まずはモデルを作成します。
モデル名には接続するテーブルの名称との間に関係性があります。
例えばテーブル名が「itemlists」ならモデル名は「Itemlist」となります。
モデル名を複数形の「スネークケース」にしたものが、テーブル名となります。
モデル名が「articleTitle」の場合は、テーブル名は「article_titles」となります。
php artisan make:model Itemlist
appフォルダ配下に「Itemlist.php」が作成されます。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Itemlist extends Model
{
//
}
コントローラー作成
次にコントローラーを作成します。
php artisan make:controller ItemlistController
app/Http/Controllers/ItemlistController.phpが作成されるので、
ここでItemlistを使用してItemlistテーブルからレコードを取得します。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Itemlist;
class ItemlistController extends Controller
{
public function index()
{
$itemlists = Itemlist::all();
$data = ['itemlists' => $itemlists];
return view('itemlist.index', $data);
}
}
ビュー作成
次にレイアウト部であるviewを作成します。
resources\views内で「itemlist」というフォルダを作成して「index.blade.php」を下記の内容で、新たに作成します。
<ul>
@foreach ($itemlists as $itemlist)
<li>商品名:{{ $itemlist->name }} 価格:{{ $itemlist->price }}</li>
@endforeach
</ul>
{{$item->name}}と{{ $item->price }}が、コントローラーから渡されたレコード情報が出力される箇所となります。
ルーティング追加
最後にアクセスするURLを設定するため、ルーティングを記述します。
ここでは/itemlistに設定します。
Route::get('/itemlist', 'ItemlistController@index');
確認
ブラウザから http://localhost:8000/itemlist にアクセスして、itemlistテーブルのレコードが出力されていることが確認できます。
![](https://mebee.info/wp-content/uploads/2020/05/image.png)
-
前の記事
phpIPAMでIPアドレス管理を行うための簡単な使い方 2020.05.11
-
次の記事
IntelliJ IDEA 日本語化の手順 2020.05.11
コメントを書く