Laravel で MariaDB のテーブルを読む API を作成します。
MariaDB の状態は次のものと同じです。
Laravel で MariaDB のデータを表示
- プロジェクトの作成
- .env の編集
- モデルの作成
- モデルの編集
- routes/api.php の編集
- コントローラーの作成
- コントローラーの編集
- サーバーの起動
- クライアントでアクセス
laravel new api01
cd api01
# 略
DB_DATABASE=city
DB_USERNAME=scott
DB_PASSWORD=tiger123
# 略
php artisan make:model Cities
app/Models/Cities.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class City extends Model
{
protected $table = 'cities';
protected $guarded = array('id');
public $timestamps = false;
}
routes/api.php
// 略
Route::group(['middleware' => ['api']], function(){
Route::resource('city', 'Api\CityController');
Route::get('all', 'Api\CityController@all');
Route::get('find/{id}', 'Api\CityController@find');
Route::get('where/{name}', 'Api\CityController@where');
Route::get('between/{min}/{max}', 'Api\CityController@between');
});
php artisan make:controller Api/CityController
app/Http/Controllers/Api/CityController.php
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\City;
class CityController extends Controller
{
public function index()
{
//
$cities = City::all();
return $cities;
}
public function all()
{
$cities = City::all();
return $cities;
}
public function find($id)
{
$cities = City::find($id);
return $cities;
}
public function where($name)
{
$cities = City::where('name','=',$name)->get();
return $cities;
}
public function between($min,$max)
{
$cities = City::whereBetween('population',[(int)$min,(int)$max])->get();
return $cities;
}
}
php artisan serve --host 0.0.0.0
curl http://localhost:8000/api/city
curl http://localhost:8000/api/where/倉敷