我试图在整个系统中提供一个我从另一个集成系统带来的参数,在我的仪表板控制器中我得到了该参数,所以我可以在输入中间件之前打印参数。在中间件中我收到错误undefined variable body
use GuzzleHttp\Client;
use Session;
class dashboardController extends Controller
{
protected $body;
protected $valor;
public function __construct(){
$url = 'https://domain.cl/xxxxxxxxxxxxx';
$client = new Client(); //GuzzleHttp\Client
$result = $client->get($url);
$body = $result->getBody();
echo $body; <--- when I print $body here I can see the value.
$this->middleware(function($request, $next) {
$this->valor = $request->session()->put('responsable', $body); <-- null here
return $next($request);
});
}
}
然后我希望这个会话参数可用于我的其他构造,我该怎么做,我不使用laravel auth。我使用集成系统登录并传递用户名。这就是我要检查的内容。
提前致谢!
图像显示我在传输控制器中获得的内容,在仪表板控制器中我看到正确的值'responsable'=&gt;'rodrigo'。
答案 0 :(得分:0)
当您执行
时,您的变量$body
不在范围之内
$this->middleware(function($request, $next) {
$this->valor = $request->session()->put('responsable', $body); <-- null here
return $next($request);
});
但您可以使用use
传递它:
$this->middleware(function($request, $next) use ($body) {
$this->valor = $request->session()->put('responsable', $body);
return $next($request);
});