コントローラー用に Laravel で動的ルーティングを作成しようとしています。これは Kohana で実行できることはわかっていますが、Laravel で動作させることに失敗しました。
これは私が今持っているものです:
Route::get('/{controller}/{action?}/{id?}'...
ということで、電話したいとcontroller/method($id)
思います。
理想的には、これは私がやりたいことです:
Route::get('/{controller}/{action?}/{id?}', $controller . '@' . $action);
そして、$controller::$action を動的に呼び出すようにします。
私はこれをやってみました:
Route::get('/{controller}/{action?}/{id?}', function($controller, $action = null, $id = null)
{
$controller = new $controller();
$controller->$action();
});
しかし、エラー メッセージが表示されます。クラス コントローラーが存在しません。そのため、コントローラーが BaseController を拡張するときに、Laravel が必要なすべてのファイルを含めていないようです。
使用$controller::$action()
すると、非静的関数を静的に呼び出すことができないことがわかります。
これを機能させる方法についてのアイデアはありますか?