2016-07-12 4 views
0

スリムフレームワークのドキュメントで、thisの例のミドルウェアでjwtトークンをデコードしています。ここでは、jwtトークンからデコードされたuseridをリクエストオブジェクトにバインドしたいと思います。これは私たちがexpressjsでやっている方法ですが、私は細いフレームワークでそれを行う方法を理解できません。リクエストオブジェクトにデータをバインドする方法はありますか?ミドルウェアでオブジェクトをリクエストするデータをバインドする[Slim Framework 3]

私が試した:

$request->setParam('userid', $userId); 

答えて

2

を[OK]を、私はこの問題を解決しました。これは、データをスリムなフレームワークでリクエストオブジェクトにバインドする方法です。

$request = $request->withAttribute('userid', $userId); 

とルートまたはコントローラで、これは我々がデータを得ることができる方法です。よくやった

$userId = $request->getAttribute('userid'); 
+1

!重要な教訓は、Requestオブジェクトは不変であるため、変更された '$ request'を新しい変数にコピーする必要があることです。あなたの質問のコードでは、L値( '$ request-> setParam( 'userid')= $ userId;')としてメソッドを使用しました。私は特別な 'list()'構造を除いて、PHPでそのような機能を認識していません - あなたは私にそれを教えてもらえますか? – jirka

+0

あなたは正しいです。これは私がした間違いでした..結果を達成するためにすべてを試していたので、コードをコピーして貼り付けました。私はnodejsから来ています。これは明示的に 'req.user = userid;'で行う方法です。とにかく、私は質問のコードを更新しました。 – Noobish

関連する問題