我有一個包含一些數據的會話,可以在我的控制器中通過幾種方法訪問,而不會出現任何問題。但是有一種方法特別有問題。爲什麼這個方法不能訪問會話?
我已經做了一個小預訂系統。在預訂完成後,我調用一個函數來一封電子郵件發送給自己和客戶:
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');
});
}
首先,我得到了一個錯誤在訪問我的電子郵箱視圖中的非對象。所以要測試它,我只需將sendConfirmationEmail
函數設置爲返回$instance
- 空白頁面。然後我通過在complete()
中註釋掉函數調用並在那裏返回$instance
來測試它。沒問題,有一個閃亮的會議充滿了數據。然後我嘗試將$instance
從complete()
傳遞到sendConfirmationEmail()
並將其返回:再次顯示空白頁。爲什麼sendConfirmationEmail
'看不到'我的會話?
我假設你看到一個500錯誤頁面;網站的laravel日誌或錯誤日誌中的錯誤是什麼?我認爲這與參數有關,但如果沒有確切的錯誤日誌,則無法確定 – Luceos