Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 为什么可以';此方法不能访问会话吗?_Session_Laravel_Laravel 5 - Fatal编程技术网

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日志或错误日志中有什么错误?我认为这与参数有关,但如果没有确切的错误日志,则无法确定