我試圖在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嗎? –