如何将关系数据传递给 Laravel 5.3 中的可邮寄件?
How can I pass relationship data to a mailable in Laravel 5.3?
使用背包 laravel(喜欢)。
所以,每次用户存储数据时我都有这段代码(FinanceCrudController):
$finance = $request->all();
if ($request->input('shouldPay') == 'Yes') {
Mail::to($request->user())->send(new NewBill($finance));
return parent::storeCrud();
}
else {
return parent::storeCrud();
}
这就是我的 Mailable (NewBill) 的样子:
class NewBill extends Mailable
{
use Queueable, SerializesModels;
/**
* The finance instance.
*
* @var Finance
*/
public $finance;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($finance)
{
//
$this->finance = $finance;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.newbill');
}
}
然后我可以通过在 newbill.blade.php 中调用它来传递财务 table 的数据,如下所示:
{{ $finance['name'] }}
然而,我不太明白的是如何抓取关系数据。
我正在使用类别 table 来处理类别。因此,如果我在 blade 视图中调用该类别:
{{ $finance['category_id'] }}
我只会获取类别 table 上字段的 ID 号。
如何在电子邮件中生成实际类别名称而不是字段 ID?
在您的可邮寄 class 上定义的任何 public 属性 将自动提供给视图。所以,你可以这样做:
public $finance;
public $category;
public function __construct($finance)
{
$this->finance = $finance;
}
public function build()
{
$this->category = \App\Category::where('id', $this->finance['category_id'])->first();
return $this->view('emails.newbill');
}
然后访问视图中带$category->name
的分类名称
使用背包 laravel(喜欢)。
所以,每次用户存储数据时我都有这段代码(FinanceCrudController):
$finance = $request->all();
if ($request->input('shouldPay') == 'Yes') {
Mail::to($request->user())->send(new NewBill($finance));
return parent::storeCrud();
}
else {
return parent::storeCrud();
}
这就是我的 Mailable (NewBill) 的样子:
class NewBill extends Mailable
{
use Queueable, SerializesModels;
/**
* The finance instance.
*
* @var Finance
*/
public $finance;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($finance)
{
//
$this->finance = $finance;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.newbill');
}
}
然后我可以通过在 newbill.blade.php 中调用它来传递财务 table 的数据,如下所示:
{{ $finance['name'] }}
然而,我不太明白的是如何抓取关系数据。
我正在使用类别 table 来处理类别。因此,如果我在 blade 视图中调用该类别:
{{ $finance['category_id'] }}
我只会获取类别 table 上字段的 ID 号。
如何在电子邮件中生成实际类别名称而不是字段 ID?
在您的可邮寄 class 上定义的任何 public 属性 将自动提供给视图。所以,你可以这样做:
public $finance;
public $category;
public function __construct($finance)
{
$this->finance = $finance;
}
public function build()
{
$this->category = \App\Category::where('id', $this->finance['category_id'])->first();
return $this->view('emails.newbill');
}
然后访问视图中带$category->name
的分类名称