我的第一个视图叫做receipt.blade,它应该包含一个日期。第二个名为userview.blade的视图有如下形式:(其工作是获取用户输入的电子邮件并显示收据)
Private Sub txtStudentName_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtStudentName.KeyPress
If Not Char.IsLetter(e.KeyChar) And Not e.KeyChar = Chr(Keys.Delete) And Not e.KeyChar = Chr(Keys.Back) And Not e.KeyChar = Chr(Keys.Space) Then
e.Handled = True
End If
End Sub
路线将其重定向到控制器:
<form method="get" action="{{ route('test') }}">
<label>Enter the email address:</label><input type="text" name="email">
<button type="submit">Submit</button>
</form
此功能允许用户获取收据(receipt.blade.php文件)。
我还有另一个视图(payment.blade),在所有操作开始之前,用户使用他们的名字和电子邮件地址注册自己,并将其添加到数据库中。
我的问题是如何在receipt.blade文件中显示日期(从payment.blade提交表单的时间)?
我读到了确实获得日期的碳,但我不知道如何使用它以及价值应该通过的地方。我猜测应该有一个隐藏的输入日期:now()或者类似于payment.blade页面中的类似内容。所以我还需要在数据库中创建日期列。但是数据库中已经有一个created_at列(由laravel默认创建),其中包含日期和时间。
此外,我如何将日期更改为日/月/年(因为我在receipt.blade中以该格式需要它)。
非常感谢帮助。
修改
public function getUserReceipts(Request $data)
{
$email = $data->email;
$donor = Donor::where('email', $email)->get();
return view('emails.receipt')->with(compact('donor'));
}
当我提交表格时,我正在创建捐赠者并发送邮件。然后它通过控制器重定向到页面,该控制器只是说“谢谢”并且不包含任何数据。但是,它还发送一封包含receipt.blade的电子邮件,而该电子邮件又包含刚刚提交给数据库的数据。因此,这是否意味着我需要做类似的事情来通过收据中的日期?所以看起来我可能还需要为日期创建一个列。或者可以不这样做?
编辑2 我的捐助者模型:
public function thankyoupage(Request $data, Mailer $mailer){
$hashed_id= hash('sha256', time());
$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,
'hashed_id'=>$hashed_id,
$mailer
->to($data->input('email'))
->send(new \App\Mail\MyMail(($data->input('first_name')),($data->input('last_name')),
($data->input('amount_donated')),($hashed_id)));
return redirect()->action('PagesController@thank1');
}
我的邮件MyMail.php:
class Donor extends Model
{
public $table ="donor";
use Notifiable;
protected $fillable = [
'first_name', 'last_name', 'email','video_count', 'amount_donated', 'hashed_id'
];
protected $hidden = [
'id'
];
public function updateDonor($first_name , $last_name , $email){
$this->first_name = $first_name;
$this->last_name = $last_name;
$this->email = $email;
$this->save();
}
}
答案 0 :(得分:1)
请看这个例子..
让我们假设你有一个控制器动作来保存提交表单时的用户:
// Save user action
$user = new \App\User();
$user->email = "myemail@email.com";
$user->save();
$userId = $user->id;
// redirect to next action
return redirect()->action(
'Controller@confirm, ['id' => $userId]
);
以及显示日期确认的其他操作
// confirm action
$user = \App\User::find($id);
return view('confirm', compact('user');
在您的视图中使用此部分:
// view
{{ Carbon\Carbon::parse($user->created_at)->format('d.m.Y') }}
答案 1 :(得分:1)
您的捐赠者对象应包含created_at字段。像这样在收据中使用它。
将此添加到您的视图
{{ $donor->created_at->format('d/m/Y') }}
以DD/MM/YYYY
格式打印日期。您可以根据需要更改格式,请查看文档以获取更多格式选项http://php.net/manual/en/function.date.php
编辑:您真的应该学习一些有关传递变量的基础知识。您的第二张收据有自己的数据集。因此,请进行以下更改。
将$donor->created_at
添加到thankyoupage
方法
send(new \App\Mail\MyMail(($data->input('first_name')),($data->input('last_name')),
($data->input('amount_donated')),($hashed_id), $donor->created_at));
在MyMail类中添加新数据变量。
public $first_name, $last_name, $amount_donated, $hashed_id, $date;
public function __construct($first_name,$last_name,$amount_donated,$hashed_id,$date)
{
$this->first_name = $first_name;
$this->last_name = $last_name;
$this->amount_donated = $amount_donated;
$this->hashed_id = $hashed_id;
$this->date = $date;
}
在singlereceipt
刀片视图中,添加此内容。
{{ $date->format('d/m/Y') }}