15

ミドルウェアからコントローラまたはそのようなミドルウェアを実行するルートに変数を渡すにはどうすればよいですか? 次のようにリクエストに追加することについての投稿を見ました:

$request->attributes->add(['key' => $value);

また、フラッシュを使用して提案された他の人:

Session::flash('key', $value);

しかし、それがベストプラクティスかどうか、またはこれを行うためのより良い方法があるかどうかはわかりませんか? ここに私のミドルウェアとルートがあります:

namespace App\Http\Middleware;

use Closure;

class TwilioWorkspaceCapability
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $workspaceCapability = new \Services_Twilio_TaskRouter_Workspace_Capability("xxxxx", "xxxx", "xxxx");
        $workspaceCapability->allowFetchSubresources();
        $workspaceCapability->allowDeleteSubresources();
        $workspaceCapability->allowUpdatesSubresources();
        $token = $workspaceCapability->generateToken();
        //how do I pass variable $token back to the route that called this middleware
        return $next($request);
    }
}

Route::get('/manage', ['middleware' => 'twilio.workspace.capability', function (Request $request) {
    return view('demo.manage', [
        'manage_link_class' => 'active',
        'twilio_workspace_capability' => //how do I get the token here?...
    ]);
}]);

参考までに、これにミドルウェアを使用することにした理由は、ライフサイクルのトークンをキャッシュする予定があるためです。そうしないと、要求ごとに新しいトークンを要求するため、これは恐ろしい実装になります。

4

2 に答える 2