2017-05-18 4 views
0

私はlaravel 5.4をカスタムパッケージで使用しています。私は別々のファイルroutes.phpで私のルートを定義しました。私は、ルートファイルをサービスプロバイダ経由でロードしています。laravel apiルートへのリクエストを取得してカスタムパッケージで作業しない

私が直面している問題は、POSTリクエストをルートに送信すると、ルートは正常に動作していますが、GETリクエストを送信すると、ログインページにリダイレクトされます。

Route::group([ 
    'prefix' => 'api', 
    'middleware' => 'api'] 
    function(){ 
     Route::get('/users',function() { 
      $users = \App\User::all();  
      return response()->json($users); 
     }); 

     Route::post('/users',function() { 
       $users = \App\User::all();  
       return response()->json($users); 
      }); 

    }); 

私のServiceProvider

class UserServiceProvider extends ServiceProvider 
{ 


    /** 
    * Bootstrap the application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     // 
     $this->loadRoutesFrom(__DIR__.'/routes.php'); 
    } 

    /** 
    * Register the application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
     // 
    } 

} 

php artisan route:list

+--------+----------+-----------------------------------------+------+----------------------------------------------------------------------------+------------+ | | POST | api/users | | Closure | api | | | GET|HEAD | api/users | | Closure | api | | | POST | oauth/personal-access-tokens | | \Laravel\Passport\Http\Controllers\[email protected] | web,auth | | | GET|HEAD | oauth/personal-access-tokens | | \Laravel\Passport\Http\Controllers\[email protected] | web,auth | | | DELETE | oauth/personal-access-tokens/{token_id} | | \Laravel\Passport\Http\Controllers\[email protected] | web,auth | | | GET|HEAD | oauth/scopes | | \Laravel\Passport\Http\Controllers\[email protected] | web,auth | | | POST | oauth/token | | \Laravel\Passport\Http\Controllers\[email protected] | throttle | | | POST | oauth/token/refresh | | \Laravel\Passport\Http\Controllers\[email protected] | web,auth | | | GET|HEAD | oauth/tokens | | \Laravel\Passport\Http\Controllers\[email protected] | web,auth | | | DELETE | oauth/tokens/{token_id} | | \Laravel\Passport\Http\Controllers\[email protected] | web,auth | | | GET|HEAD | {path?} | | App\Http\Controllers\WelcomeController | web | +--------+----------+-----------------------------------------+------+----------------------------------------------------------------------------+------------+

私は私のroutesをテストするためにPOSTMANを使用しています。

助けてください。

+0

の上ご利用のサービスプロバイダを配置することで、あなたはそれが動作するかどうかを確認するために異なったあなたのポスト/入手ルートを命名しようとしましたか? – Christophvh

+0

はい私はそれを試みました。 'get'メソッド以外のルートは私に正しい応答を返します。私は 'get'ルートだけで問題に直面しています。 – besrabasant

答えて

1

アレイを閉じるブラケットがあり、両方のルートがまったく同じものです。どのようにサービスプロバイダのビューを読み込んでいますか?

Route::group(['prefix' => 'api', 'middleware' => 'api'], function() { 

    Route::get('/users', function() { 
     $users = \App\User::all(); 
     return response()->json($users); 
    }); 

    Route::post('/users', function() { 
     $users = \App\User::all(); 
     return response()->json($users); 
    }); 

}); 

編集:私のコメントの要求に従って、あなたのコードを確認した後、ここでの問題は、あなたのグローバルGETルートGET|HEAD | {path?}で、このルートは、あなたのアプリケーション内の他の路線と重複し、このルートは、ウェブと認証ミドルウェアを持っている、という意味認証が必要です。このルートを削除するとすべて正常に動作するはずです。

Route::get('/{path?}', 'WelcomeController'); 

編集2:あなたがこれを必要とするので、他のソリューションはApp\Providers\RouteServiceProvider::class

+0

ありがとう '@ Sandeesh'。申し訳ありませんが、私は質問の中で閉じた ']'を見逃しました。私はビューをロードしていません。私は 'json'レスポンスを返しています。 – besrabasant

+0

あなたは私が作ることができます。しかし、getとpostの両方のルートはコード内で全く同じことをします。また、サービスプロバイダーのコードを共有して、ルートのロード方法を理解してください。 – Sandeesh

+0

'php artisan route:list'を実行して出力を表示できますか? – Sandeesh

関連する問題