Php Laravel Mail未定义变量

Php Laravel Mail未定义变量,php,email,laravel,laravel-4,blade,Php,Email,Laravel,Laravel 4,Blade,我正在尝试使用Laravel Mail发送电子邮件&获取未定义的变量:视图中的数据。这是我的控制器代码 $insured = Claim::where('id', '=', $claim_id)->first()->toArray(); $workshop = Workshop::where('id', '=', $insured['workshop_id'])->first()->toArray(); $data

我正在尝试使用Laravel Mail发送电子邮件&获取未定义的变量:视图中的数据。这是我的控制器代码

    $insured        =   Claim::where('id', '=', $claim_id)->first()->toArray();
    $workshop       =   Workshop::where('id', '=', $insured['workshop_id'])->first()->toArray();
    $data           =   Document::whereRaw('claim_id = ' . $claim_id . ' AND (documents.status = 10 OR documents.status = 12)')
                        ->join('docs','documents.doc_id', '=', 'docs.id')
                        ->join('claims','documents.claim_id', '=', 'claims.id')
                        ->get(array('docs.email_text', 'claim_of', 'vehicle_no'))->toArray();
    Mail::send('emails.workshop', $data, function($message)
    {
        $message->to('someone@somedomain.com')->subject('Testing');
    });
查看

{{ $data[0]['claim_of'] }}

<br />

{{ $data[0]['vehicle_no'] }}

<br />


    <?php $i = 1 ; ?>
    @foreach($data as $key => $claim)
        <p> {{ $i }}. {{ $claim->email_text }}</p>
        <?php $i++ ; ?>
    @endforeach

一切都很完美。

参数必须作为键值数组传入

Mail::send('emails.workshop', array('data' => $data), function($message)
{
    $message->to('someone@somedomain.com')->subject('Testing');
});

有一个很好的PHP函数,它根据变量名自动执行此操作


因此
compact('data')
返回
array('data'=>$data)
(如果定义了
$data

参数必须作为键值数组传入

Mail::send('emails.workshop', array('data' => $data), function($message)
{
    $message->to('someone@somedomain.com')->subject('Testing');
});

有一个很好的PHP函数,它根据变量名自动执行此操作


所以
compact('data')
返回
array('data'=>$data)
(如果定义了
$data

非常感谢@lukasgeiter您的答案解决了这个错误。非常感谢@lukasgeiter您的答案解决了这个错误。