Session 为什么可以';此方法不能访问会话吗?
我有一个会话,其中包含一些数据,我可以通过控制器中的几个方法轻松访问这些数据。但有一种方法特别有问题 我做了一个小小的预订系统。预订完成后,我会调用一个函数向我自己和客户发送一封电子邮件:Session 为什么可以';此方法不能访问会话吗?,session,laravel,laravel-5,Session,Laravel,Laravel 5,我有一个会话,其中包含一些数据,我可以通过控制器中的几个方法轻松访问这些数据。但有一种方法特别有问题 我做了一个小小的预订系统。预订完成后,我会调用一个函数向我自己和客户发送一封电子邮件: public function complete(Request $request) { $details = Session::get('details'); // send emails: call sendConfirmationEmail(to address
public function complete(Request $request)
{
$details = Session::get('details');
// send emails: call sendConfirmationEmail(to address, using this view)
$this->sendConfirmationEmail(env('EMAIL'), 'emails.ourconfirmation');
$this->sendConfirmationEmail($details->booker_email, 'emails.bookerconfirmation');
return view('booking/complete');
}
private function sendConfirmationEmail($to,$view)
{
$from = env('OFFICE_EMAIL');
$to_address = $to;
$details = Session::get('details');
$instance = Session::get('instance');
Mail::queue($view, compact(['details','instance']), function($message) use ($to){
$message->from(env('OFFICE_EMAIL'))
->to($to)
->subject('Thanks for booking');
});
}
首先,我在访问电子邮件视图中的非对象时出错。所以为了测试它,我只需将
sendconfirmationmail
函数设置为返回$instance
-空白页面。然后我在complete()
中注释掉函数调用,并在那里返回$instance
,对其进行了测试。没问题,有一个很好的充满数据的闪亮会话。然后,我尝试将$instance
从complete()
传递到sendconfirmationmail()
并返回它:同样是空白页。为什么不能发送确认邮件查看我的会话 据我所知,会话用于跨HTTP请求使用,而不是跨PHP中的函数使用。您正在尝试将会话用作全局变量
您只需在complete
函数中捕获详细信息
和实例
会话数据,然后将其作为sendconfirmationmail()函数的参数传递 我假设您看到一个500错误页面;网站的laravel日志或错误日志中有什么错误?我认为这与参数有关,但如果没有确切的错误日志,则无法确定