所以我有一个简单的表单,我希望每当用户提交表单以通过电子邮件发送给我时,就不确定是什么问题,就像我提交表单时遇到500错误并且我不确定为什么一样。
这是表格:
<div class="contact" id="contact">
<form action="{{url('/contact')}}" method="post">
{{ csrf_field() }}
<input type="text" class="fname" name="firstname" placeholder="First Name">
<input type="text" class="lname" name="lastname" placeholder="Last Name">
<input type="text" class="address" name="address" placeholder="Address">
<input type="text" class="email" name="email" placeholder="Email">
<textarea id="subject" name="message" placeholder="Message" style="height:200px"></textarea>
<label class="checkbox-label">
<input type="checkbox" class="yard" name="yard"> I Want a Yard Sign
</label>
<br>
<label class="checkbox-label">
<input type="checkbox" class="host" name="host"> Host a Meet and Greet
</label>
<br>
<input type="submit" value="Get More Information">
<br>
</form>
</div>
在我的网络路由文件中,我有两个路由设置
Route::get('/contact', function () {
return view('contact');
});
Route::post('/contact', function (Request $request) {
Mail::send(new ContactMail($request));
return redirect('/');
});
我创建了我的邮件文件
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class ContactMail extends Mailable
{
use Queueable, SerializesModels;
public $email;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
$this->email = $request;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->subject('New Contact Mail')
->from($this->email->email, $this->email->firstname)
->to('test@gmail.com')
->view('email.contactmail');
}
}
然后是我的简单刀片文件
{{ $email->content }}
每当我提交表单或尝试调用路线时,都会出现500错误,并且不确定原因。
答案 0 :(得分:0)
我认为您忘记了在类构造函数中插入Request $request
作为参数并导入Request类。
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Http\Request;
class ContactMail extends Mailable
{
use Queueable, SerializesModels;
public $email;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(Request $request)
{
$this->email = $request;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->subject('New Contact Mail')
->from($this->email->email, $this->email->firstname)
->to('test@gmail.com')
->view('email.contactmail');
}
}
此外,根据您的描述,您可能没有调试。在.env文件中更改它: APP_DEBUG = TRUE