2015-11-24 3 views
2

Я использую динго/апи для проекта и все мои маршруты работают, кроме 1.Маршрут Laravel отлично работает локально, но не удален. (Dingo Api)

routes.php

$api = app('api.router'); 
    $api->version('v1',['prefix' => 'api'], function ($api) { 

     $api->post('users', "App\Http\Controllers\Auth\[email protected]"); 
... 
     }); 

магазин метод:

/** 
    * 
    * @param \App\Http\Requests\Auth\StoreUserRequest $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function store(StoreUserRequest $request) 
    { 
     if(! $this->isAdminRequest()) 
     { 
      return $this->dispatch(new RegisterUserCommand($request)); 
     } 
    } 

Этот маршрутные броски 405 Method Not Allowed Exception.

php artisan api:routes показывает, что он зарегистрирован как локально, так и на сервере. Я использую POSTMAN для проверки своего api и всех необходимых полей. В ответ я получаю Разрешить: POST.

Примечание:

  • Есть другие почтовые маршруты, которые работают отлично.
  • Есть другие UsersController маршруты, которые отлично работают
  • Я попытался удалить все остальные маршруты, и только с этим он все еще не работает.

Любая помощь приветствуется. Благодарю.

UPDATE:

Хорошо, это было действительно нелепая ошибка с моей стороны. Я ударил 'домен/api/users /'. Сработала задняя часть '/'. Но дело в том, что локально '/' работает, а не на сервере. Так что, возможно, этот вопрос можно задать для некоторого объяснения.

+0

Это имя класса контроллера/имя контроллера, то же, что указано в файле маршрута ... ?? –

+0

Да, это так. Как я уже сказал, есть другие маршруты пользователей, которые работают отлично. –

+1

Я звонил без https: // – astroanu

ответ

0

Очень хороший вопрос и с тех пор наткнулся на это сам. Ваше обновление должно быть в ответе, поэтому, если вы это сделаете, я могу удалить мой. Проблема для меня была слепой косой чертой в моем action, например. /some/action/ вместо /some/action, где маршрут ожидал его в последней форме.

Я предположил, что Laravel будет обрабатывать эту необязательную конечную косую черту как функцию, учитывающую поведение в локальной среде, но это было не так.

+0

Я сохранил это, потому что не смог найти, почему это происходит. У меня разные конфигурации локально и на сервере. Может быть, из-за этого. Или, возможно, это из-за конфигурации APACHE или .htaccess. Я надеялся найти, что может повлиять и вызвать такое поведение. –

+0

Это имеет смысл, потому что ваш локальный может запускать nginx и ваш сервер на Apache. Способ, которым они обрабатывают вещи, вероятно, является причиной проблемы. – Jonathan

+0

Нет, это не Apache, а разные версии. Я расскажу об этом позже и уточню здесь. –

Смежные вопросы