PHPのマイクロフレームワーク Lumenを使ってAPIを作る方法をUdemyというE-learningのサイトで勉強中です。
↓
Create Fast RESTful APIs with Lumen and Homestead by Laravel
開発はVagrantを使わずMAMPでやっていたのですがうまくいかず。
目次
localhost/LumenAPI/public/teachers
ブラウザから下記のURLをたたくと、
localhost/LumenAPI/public/teachers
こんなエラーが
Sorry, the page you are looking for could not be found.
NotFoundHttpException in Application.php line 1264:
in Application.php line 1264
at Application->handleDispatcherResponse(array(‘0’)) in Application.php line 1219
at Application->Laravel\Lumen\{closure}() in Application.php line 1454
at Application->sendThroughPipeline(array(), object(Closure)) in Application.php line 1221
at Application->dispatch(null) in Application.php line 1161
at Application->run() in index.php line 28
書いているのは、
/Http/routes.phpに
$app->get('/teachers', 'TeacherController@index'); $app->post('/teachers', 'TeacherController@store');
/Http/Controllers/TeacherController.phpに
class TeacherController extends Controller; { public function index() { return __METHOD__; }
としています。
localhost/lumenAPI/teachers
ちなみに、publicをなくすと、
localhost/lumenAPI/teachers
Not Foundエラーです。
php artisan route:list
いろいろしらべていると、
php artisan route:list
とターミナルから入れるとroutingが調べられるとわかりました。
しかし、これはLaravelではあったけどLumenでは削除されているようです。
が、しかし、Lumenでもartisan route:listコマンドを追加する方法がQitaにありました。
Lumenで省かれたartisan route:listコマンドを追加する方法 – Qiita
こちらがgithub
GitHub – appzcoder/lumen-route-list: Lumen Route List Show
使いかたは、
composer require appzcoder/lumen-routes-list
をした後、
/bootstrap/app.php
に、
$app->register(Appzcoder\LumenRoutesList\RoutesCommandServiceProvider::class);
と書けば良いそうな。
まとめ
lumenにroute:listコマンドを追加する方法は、appを上書きしてしまうとのことなのでまだ試していません。
というのも、明日にLaravelもくもく会があるので、そこで誰かにきくことができそうだからです。
楽しみ。