私はルートを使ってLaravel 5.2でパッケージを作成しようとしています。私はHttp/Controllers
フォルダー内のコントローラー(名前空間vendor\package\Http\Controllers\MyController
)を持っています。エイリアスを作成したいのですが、どのようにしたらよいかわかりません。私はそのようなroutes.php
でこのコントローラを呼び出すにしたくない:Laravelパッケージコントローラ別名ルート
Route::get('myurl', vendor\package\Http\Controllers\MyController::class . '@action');
しかし、そのように:
Route::get('myurl', '[email protected]');
私はApplication
クラスのAPIでこれを検索してみましたが、私は、この情報を見つけることができません。
このコードはパッケージプロバイダでは機能しません。
$this->app
->alias(vendor\package\Http\Controllers\MyController::class, 'MyController');
マイサービスプロバイダ:
class PackageRouterServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
include(__DIR__ . '/../Http/routes.php');
$this->app->alias(MyController::class, 'MyController'); // <- I tried this
}
}
パッケージルートファイルではなく、アプリケーションroutes.phpファイルでパッケージコントローラを取得しようとしていますか?これは私にとってはあまり意味がありません。あなたのパッケージコントローラのアクションに動的なURLを作成したいのであれば、パッケージコンフィグレーションファイルなど、別の方法でそれを行う必要があると思います。 –
@GerardRechesいいえ、いいえ、私のパッケージルートファイルです。 – ventaquil
あなたのルートはフルネームスペースなしでコントローラを見つけることができないという問題がありますか?パッケージRouteServiceProviderを表示できますか? –