0

我正在尝试将一个对象传递给 Laravel Excel 工作表方法,但我不确定如何。我得到一个未定义的变量错误 - 我意识到这是因为我在一个没有范围来访问对象的函数中。

最终,我从一个表加载 regtypes - 来自另一个表的与会者,并为每个 regtype 创建一个包含该类型所有与会者的工作表。

我的代码:

public function export() 
{
    $date = date('Y_m_d');
    \Excel::create('CMO_Connect_Attendees_Export_'.$date, function($excel) {
    $regtypes = Regtype::all();
    foreach ($regtypes as $regtype) {
        if( $regtype->attendees(3)->count() ) {

        $excel->sheet('Attendees', function($sheet) {
            $date = date('Y_m_d');
            $attendees = new Attendee;

            $atts = Attendee::where('block_id', '=', \Input::get('block_id'))
                ->where('regtype_id', '=', $regtype->id)
                ->get();
                $sheet->setStyle(array(
                    'font' => array(
                        'name'      =>  'Arial',
                        'size'      =>  12,
                        'bold'      =>  false
                    )
                ));
            $sheet->loadView('attendees.export', array('atts' => $atts))->with('curdate',$date)->with('regtype_name',$regtype->name);

        });
        } //endif
    } //endforeach

    $excel->export('xls');
    });
}
4

1 回答 1

0

当我写这篇文章时,我想通了,我应该知道它很简单,因为它只是 Laravel Facade 的一种方法,所以你将对象作为数组传递,如下所示:

            $excel->sheet('Attendees',  array('regtype' => $regtype), function($sheet) {
于 2014-10-22T23:09:05.623 回答