我正在使用Laravel Excel导出数据。我想将所有提醒附加到兽医上,可以通过hasManyThrough关系进行访问。
我尝试了以下代码
RemindersExport.php
public function collection()
{
$vets = Vet::where('is_active', 1)->get();
foreach($vets as $vet){
$reminders = $vet->reminders();
}
return $reminders;
}
控制器
public function reminders()
{
return Excel::download(new RemindersExport, 'reminders30days.xlsx');
}
我收到以下消息...
方法Illuminate \ Database \ Query \ Builder :: all不存在。
答案 0 :(得分:0)
问题是您使用的是集合方法,但您应该使用查询方法,而laravel-excel将为您执行查询,因此您不必在查询结束时使用get方法,首先可以使用FromQuery的关注点,之后应将收集方法替换为查询方法,编写查询,并且不要在查询结束时添加get方法
use Maatwebsite\Excel\Concerns\FromQuery;
class VetExport implements FromQuery{
public function query()
{
$vets = Vet::where('is_active', 1);
foreach($vets as $vet){
$reminders = $vet->reminders();
}
return $reminders;
}
}
我希望这对您有帮助