Laravel - Экспорт в Excel с отфильтрованным диапазоном дат - PullRequest
0 голосов
/ 05 сентября 2018

Я буду делать файл отчетов с диапазоном дат. Однако я застрял в том, куда я помещу массив тестовых записей в оператор Excel :: create (). То, что я тестировал, пыталось поместить $ posts как compact (), однако это не работает.

Вот моя функция:

public function exportDatedPosts(Request $request)
{
        $dateStart = $request->startDate;
        $dateEnd = $request->endDate;
        $posts = DB::table('posts')->whereBetween('created_at', [$dateStart, $dateEnd])->get();

        Excel::create('PostsReport', function($excel) 
        {
            $excel->sheet('New sheet', function($sheet) 
            {
                $sheet->loadView('ExImports.DatedPost');
            });
        })->export('csv');
}

1 Ответ

0 голосов
/ 05 сентября 2018

решили проблему. Мне просто нужно передать $ posts через use ($ posts) и добавить -> with (compact ('posts')) в loadView

public function exportDatedPosts(Request $request)
{
    $dateStart = $request->startDate;
    $dateEnd = $request->endDate;
    $posts = DB::table('posts')
            ->distinct()
            ->leftJoin('post_tag', 'posts.id', '=', 'post_tag.post_id')
            ->leftJoin('tags', 'tags.id', '=', 'post_tag.tag_id')
            ->leftJoin('users', 'users.id', '=', 'posts.user_id')
            ->select('posts.title', 'posts.body' ,'users.name as user')
            ->whereBetween('posts.created_at', [$dateStart, $dateEnd])
            ->get();
    Excel::create('PostsReport', function($excel) use($posts)
    {
        $excel->sheet('New sheet', function($sheet) use($posts)
        {
           $sheet->loadView('ExImports.DatedPost')->with(compact('posts'));
        });
    })->export('csv');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...