我在使用laravel函数中的数据时遇到问题,这是一个例子:
public function csvUnique($id){
$date1= ''.$id.' 00:00:00';
$date2= ''.$id.' 23:59:59';
\Excel::create('Customer list', function ($excel) {
$excel->sheet('Sheetname', function ($sheet) {
echo $date1;
echo $date1;
});
})->export('csv');
} //end csv
$id
是传递值,如果使用dd($id)
,我可以看到值。问题是:如何在函数内传递值date1
和date2
?
我尝试了同样的错误:
**Undefined variable: date1**
答案 0 :(得分:1)
您必须将变量注入闭包的范围。这是通过use
:
\Excel::create('Customer list', function ($excel) use ($date1, $date2) {
$excel->sheet('Sheetname', function ($sheet) use ($date1, $date2) {
echo $date1;
echo $date1;
});
})->export('csv');
在你的情况下,你必须做两次。首先将它传递到第一个匿名函数中,然后从那里传递到第二个函数。
请查看this answer,了解整个主题的详细说明。 跨越范围边界部分与您的问题特别相关。