Я пытаюсь создать пакет в 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
}
}
Вы пытаетесь получить свой контроллер пакетов в своем приложении route.php-файл, а не в файле маршрутов пакетов? Это не имеет большого значения для меня. Если вы хотите создать динамические URL-адреса для действий вашего контроллера пакетов, я думаю, вам нужно найти другой способ сделать это, например, с помощью файла конфигурации пакета. –
@GerardReches Нет, нет, это мой файл маршрутов пакетов. – ventaquil
Итак, проблема в том, что ваши маршруты не могут найти контроллер без его полного пространства имен? Вы можете показать свой пакет RouteServiceProvider? –