Laravel: pasar variables del middleware al controlador / ruta
¿Cómo puedo pasar variables de un middleware a un controlador o una ruta que ejecuta dicho middleware? Vi algunas publicaciones sobre cómo agregarlo a la solicitud de esta manera:
$request->attributes->add(['key' => $value);
también otros sugeridos usando flash:
Session::flash('key', $value);
pero no estoy seguro de si esa es la mejor práctica, o si hay una mejor manera de hacerlo. Aquí está mi Middleware y ruta:
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?...
]);
}]);
Para su información, la razón por la que decidí usar un middleware para esto es porque planeo almacenar en caché el token para su ciclo de vida; de lo contrario, esta sería una implementación horrible, ya que solicitaría un nuevo token en cada solicitud.