这是在 SallaryCrudController :
public function remindsallary(Request $request)
{
$sallary = \App\Models\Sallary::where('isPaid', 'No')->get();
$salcount = count($sallary);
if ($salcount > 0) {
Mail::to($request->user())->send(new RemindSallary($sallary));
\Alert::success('Email sent with ' . $salcount . ' reminders.')->flash();
return redirect('admin/sallary');
} else {
\Alert::error('There are no open payments.')->flash();
return redirect('admin/sallary');
}
}
这是我的 RemindSallary mailable:
class RemindSallary extends Mailable
{
use Queueable, SerializesModels;
/**
* The Sallary instance.
*
* @var Sallary
*/
public $sallary;
public $employee;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($sallary)
{
//
$this->sallary = $sallary;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$this->employee = \App\Models\Employee::where('id', $this->sallary['employee_id'])->first();
return $this->view('emails.remindsallary')->subject('Payment reminder');
}
}
这是我的 remindsallary 视图:
@section('content')
@foreach ($sallary as $emp)
<p>Name: {{ $employee->name }} :: Value: {{ $emp->value }}</p>
@endforeach
我尝试启动时遇到的错误是:
Undefined index: employee_id
描述:
当我连续请求所有数据时,我可以打印关系。但在这种情况下,我要求所有行中的所有数据都是&#39; isPaid&#39; =&#39;否&#39;。
所以,我确定这是错的:
$this->employee = \App\Models\Employee::where('id', $this->sallary['employee_id'])->first();
因为它是一个我不能这样称呼它的对象,但我不知道怎么称呼它。我试过sallary-&gt; employee_id无济于事。当我这样做时,我得到:
Undefined property: Illuminate\Database\Eloquent\Collection::$employee_id
我该如何解决这个问题?我需要在Employee表上获取员工姓名并将其传递给mailable。
答案 0 :(得分:1)
终于解决了
诀窍是直接调用这种关系,而不是完全引入“员工”模式。
我只需要在刀片视图中添加它:
With ActiveSheet.PivotTables("PivotTable1").PivotFields("COB_TITLE")
.PivotItems("CMD GRP").Visible = True
.PivotItems("G1").Visible = True
.PivotItems("G2").Visible = True
End With