2016-05-19 5 views
0

は、私は次のようミドルウェアでいくつかのデータを格納します。Laravel、独自のリクエストクラスで失われたデータ

public function handle($request, Closure $next) 
{ 
    //checking above.. 
    if($this->authed()){ 
     $request->token= $token; //here store the token in user request 
     return $next($request); 
    } 
    return response('Invalid credentials', 401); 
} 

は、コントローラに私が最初のddはヌルを与える

//function in controller 
public function upload(CoverageValueRequest $request){ //calling a custom request 
    dd($request->token); 
    dd($request->all()); 
} 

カスタムリクエストクラスを呼び出します。しかし、 CoverageValueRequestRequestに変更した場合、トークンが印刷されます。

P.S:Content-Type:application/jsonを使用してREST呼び出しからJSON形式の$ requestデータを受け取ります。これが適切かどうかはわかりません。

更新

私はミドルウェアまだ同じ動作に次のように変更されました:CoverageValueRequest場合

$request->merge(['token' => $token]); 

は、トークンを取得することはできませんが、それはRequestであれば、それは動作します。私がなぜわからない

//function in controller 
public function upload(CoverageValueRequest $request){ //calling a custom request 
    dd($request->attributes->get('token')); 
    dd($request->all()); 
} 

:次のように

public function handle($request, Closure $next) 
{ 
    //checking above.. 
    if($this->authed()){ 
     $request->attributes->add(['token' => $token]); 
     return $next($request); 
    } 
    return response('Invalid credentials', 401); 
} 
その後、

コントローラでそれを取得:

答えて

0

は私が要求する属性、ミドルウェアクラスとしてトークンを設定することで、答えを発見しました直接割り当ての奇妙な振る舞い、またはmergeが機能しませんでした。誰かが明らかにできることを願っています。

関連する問題