使用背包为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 中调用它来传递财务表中的数据,如下所示:
{{ $finance['name'] }}
然而,我无法弄明白的是如何获取关系数据。
我使用Category表来处理类别。所以,如果我在我的刀片视图上调用该类别:
{{ $finance['category_id'] }}
我只会在分类表中获取该字段的ID号。
如何在电子邮件中生成实际的类别名称而不是字段的ID?
答案 0 :(得分:2)
您的mailable类中定义的所有公共属性都将自动提供给视图。所以,你可以这样做:
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
访问类别名称。