【发布时间】:2017-05-22 13:37:00
【问题描述】:
我有一个控制器,主要有两个功能。第一个函数将用户添加到数据库并向用户发送电子邮件 (receipt.blade.php)。第二个函数允许用户获取用户输入的特定电子邮件的所有收据。
现在,如果我直接转到用户可以输入电子邮件并获取所有收据的页面,它工作正常。但是,如果我尝试通过添加新用户的过程来执行此操作,我会在单击提交以添加用户后得到标题中描述的错误。但是,它已将用户添加到数据库,但显示错误,因为它发送的电子邮件是receipt.blade.php 并且具有未定义的变量。我的控制器有这些:
use App\Donor;
use App\Video;
use Illuminate\Http\Request;
use DB;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Mail;
第一个函数是:
public function thankyoupage(Request $data, Mailer $mailer){
$donor = Donor::create([
'first_name'=> $data->first_name,
'last_name' => $data->last_name,
'email' => $data->email,
'video_count' => $video_count,
'amount_donated' => $data->amount_donated,
});
$mailer
->to($data->input('email'))
->send(new \App\Mail\MyMail(($data->input('first_name')),($data->input('last_name')),
($data->input('amount_donated'))));
return redirect()->action('PagesController@thank1');
}
我的邮寄文件(可邮寄)是:
class MyMail extends Mailable
{
use Queueable, SerializesModels;
public $first_name, $last_name, $amount_donated;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($first_name,$last_name,$amount_donated)
{
$this->first_name = $first_name;
$this->last_name = $last_name;
$this->amount_donated = $amount_donated;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('myemailid12341@gmail.com')
->view('emails.receipt');
}
}
第二个功能是:
public function getUserReceipts(Request $data){
$email = $data->email;
$donor = Donor::where('email', $email)->get();
return view('emails.receipt')->with(compact('donor'));
}
收据文件只包含:
@foreach($donor as $value)
{{ $value->first_name }}
{{ $value->last_name }}
{{ $value->amount_donated }}
@endforeach
我得到的错误似乎是因为收据文件中的捐赠者是 未定义,我不确定如何修复它,因为它是通过紧凑型传递的 在第二个函数中。
非常感谢您的帮助。
【问题讨论】:
-
您使用
Donor::create([创建了$donor,但以}]结束。
标签: php laravel email laravel-5 laravel-5.4