Laravel — несколько контроллеров с одинаковыми именами

#php #laravel #frameworks #controller #namespaces

#php #laravel #фреймворки #контроллер #пространства имен

Вопрос:

У меня уже есть работающее приложение, и в PhoneController.php папке controllers есть.

Теперь я хочу добавить API для своего приложения, поэтому я добавил apiv1PhoneController.php

Но когда я использую маршрутизацию, это работает не так, как я хочу:

 Route::group(array('prefix' => 'api/v1'), function()
{
    Route::get('test', 'PhoneController@index');
});
  

Я пытался добавить 'namespace' => 'apiv1' или apiv1PhoneController@index , но это всегда выбирает неправильный PhoneController.

Есть ли какие-либо способы заставить это работать? Я мог бы переименовать PhoneController.php , но это может сбить меня с толку в будущем, поэтому я пытаюсь избежать этого решения

Комментарии:

1. daylerees.com/codebright/controllers в маршрутизации контроллеров он говорит о контроллерах пространства имен

2. Небольшой вопрос: когда я всегда использую этот способ, мне приходится добавлять множество таких use XYZ; снова и снова, есть ли способы автоматизировать это?

3. поместите перед именем класса, например: View

4. Теперь работает отлично, спасибо! Могу ли я пометить ваш ответ как правильный?

5. Я добавил ответ, рад помочь

Ответ №1:

Как описано здесь http://daylerees.com/codebright/controllers

 namespace BlogController;

class Article extends BaseController
{
    public function showIndex()
    {
        return View::make('index');
    }
}
  

Затем добавьте маршрут

 Route::post('index', 'BlogControllerArticle@showIndex');