2017-08-20 8 views
0

laravel 5.4アプリケーションでは、私はリソースとそのコントローラを持っています。私が代わりにコントローラ機能結果(JSON)を取得する(インデックスのような)リソースアクションのURLを入力すると、私は/homeにリダイレクト: は(私はすでにログインしていると私は私のユーザーの/homeにリダイレクト)Laravelはすべてのリソースを自宅にリダイレクトします

私のコントローラ:

class DreamController extends Controller 
{ 

public function __construct() 
{ 
    $this->middleware('auth:api'); 
} 
public function index(Request $request) 
{ 
    $dreams = $request->user()->dreams()->orderBy('created_at', 'desc'); 

    return response()->json(['dreams' => $dreams]); 
} 
} 

私のルートapi.php:

Route::middleware('auth:api')->get('/user', function (Request $request) { 
    return $request->user(); 
}); 
Route::resource('dreams', 'DreamController'); 

私web.phpルート:

Route::get('/', function() { 
    return view('welcome'); 
}); 
Route::resource('dreams', 'DreamController'); 
Auth::routes(); 
Route::get('/home', '[email protected]')->name('home'); 

URLがあるので、アプリケーションが私のローカルマシン上にある: http://127.0.0.1:8000/dreamsが、私はhttp://127.0.0.1:8000/home

+0

あなたは私達にあなたのURLを表示することができます。もっと知ることは助けになるでしょう。 –

+0

職人があなたの現在のルートをリストアップしてみてください - そこに夢のルートがあるかどうかを確認してください: php職人ルート:リスト – NadavL

+0

はい、ルートが存在します –

答えて

0

にリダイレクトあなたがウェブでapiガードを使用しているweb.php

Route::get('/', function() { 
    return view('welcome'); 
}); 
Auth::routes(); 
Route::resource('dreams', 'DreamController'); 
Route::get('/home', '[email protected]')->name('home'); 
+0

私の現在のルートとの違いは何ですか? –

+0

試しましたか?試してみて、結果を教えてください。私には理論がありますが、それがうまくいくかどうかはわかりません。 – Ahsan

+0

私はそれを試した。うまく行かなかった –

0

でこれを試してみてくださいルート。 apiトークンを使用したガードチェック認証。

DreamController constructorのガードをapiの代わりにwebガードに置き換えてください。これは、認証にセッションを使用します。

使用この: -

public function __construct() 
{ 
    $this->middleware('auth:web'); 
} 
関連する問題