モデルの作り方&データベースの結果をAPIで返す
モデルの作り方については、まず以下を読んでほしい。
まずデータベースを作成&マイグレーションする。次に、テーブルやビュー1つにつき、モデルを一つずつ割り当てる。例えば以下のようにする。
$ php artisan make:model Models/VOrderView
すると、<LaravelRoot>/app/Models/配下にVOrderView.phpというモデルファイルができる。中身は以下の通りである。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class VOrderView extends Model
{
}
何もしなければ、モデル名をスネーク式した↑で、複数形の名前にしたテーブルあるいはビュー(この場合だと、v_orderviews)という名前のテーブルに自動的に紐づくが、以下のようにすると、手動でテーブルの紐付けを行うことができる。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class VOrderView extends Model
{
//-- ↓以下の記述を入れると、手動でテーブルへの紐付けができる。
protected $table = "V_ORDERVIEW";
}
モデルを作れば、データベースの中身をWebAPIの結果として返すことができるようになる。WebAPI用のコントローラーファイルを<LaravelRoot>/app/Http/Controllers/Api/UserControllersに配置しているとすると、コントローラーファイルに以下のように書く。
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\VOrderView;
//-- ↑モデルの場所を予め指定しておく。
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//-- モデルに紐付いているDBの全データを返す。
$aho = VOrderView::all();
return $aho;
}
//-- 以下省略
}
あとはhttps://<URL>/api/users/にアクセスすると、JSONで結果が得られているのがわかる。(ただし結果はUTF-8でエンコードされている)
