如何将对象传递给Laravel Excel中的工作表方法?

时间:2014-10-22 23:09:06

标签: laravel-4 laravel-excel

我试图将对象传递到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');
    });
}

1 个答案:

答案 0 :(得分:0)

当我写这篇文章时,我想通了,非常简单,我应该知道它只是一个Laravel Facade的方法,所以你把对象作为一个数组传递:

            $excel->sheet('Attendees',  array('regtype' => $regtype), function($sheet) {