はじめに
Laravelは、データベース処理を自動化する仕組みが含まれているPHPフレームワークのひとつです。
前回は、Laravelの拡張パッケージであるDB2 for IBM iSeries Laravel Driverのインストール方法など、環境構築に関する手順をご紹介しました。
今回は、データを取得する方法について紹介します。
ルートの定義
まず、必要なルートを定義します。
ルートはLaravelアプリケーションで特定のURLリクエストをハンドリングするポイントです。「/routes/web.php」に定義します。
以下の例では、「/db2-page」というURLへのGETリクエストをハンドリングします。
use App\Http\Controllers\Db2Controller;
Route::get('/db2-page', [Db2Controller::class, 'index']);
コントローラの作成
次に、必要なコントローラを作成します。
コントローラは、特定のリクエストを処理し、対応するビューを生成するためのロジックを含むファイルです。
ここに、IBM i(DB2)に接続してクエリを実行する処理を記述します。
以下のコマンドを使用してコントローラを生成します。
php artisan make:controller Db2Controller
生成された「/app/Http/Controllers/Db2Controller.php」を編集し、先ほど定義したルートのためのメソッドを追加します。
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class Db2Controller extends Controller
{
public function index()
{
// IBM i(DB2)に接続してクエリを実行する
$customers = DB::select('select * from QIWS.QCUSTCDT');
// クエリ結果をビューに渡す
return view('db2test', ['customers' => $customers]);
}
}
ビューの作成
次に、ビューを作成します。
ビューは実際にブラウザ上に表示されるHTMLコンテンツです。Bladeテンプレートエンジンを使用します。
デフォルトでは、ビューは「/resources/views」ディレクトリに保存されています。
新しいビューのファイル「/resources/views/db2_page.blade.php」を作成します。
<!DOCTYPE html>
<html>
<head>
<title>DB2 Page</title>
</head>
<body>
<h1>QIWS/QCUSTCDT CITY List</h1>
@foreach ($customers as $customer)
<p>{{ $customer->CITY }}</p>
@endforeach
</body>
</html>
動作確認
ローカル開発サーバを起動して、正しく処理が実行されるかを確認します。
php artisan serve
「http://[IPアドレス]:[ポート]/db2-page」にアクセスし、正しく処理が実行されていれば、以下のようにIBM iからデータを取得できます。
ご参考になれば幸いです。最後までお読み頂きありがとうございます。