使用laravel導出Excel中的問題

我使用laravel Maatwebsite v3和vuejs創建了一個excel導出系統,用于按管理員輸入的郵政編碼列出附近的用戶。

Controller

public function export(Request $request)
{
    $file_name='frineds_'.date("d-m-Y h:i").'.csv';
    return Excel::download(new FriendExport($request['postcode'],$request['miles']), $file_name);
}

FriendImport.php

namespace App\Exports;
use App\Models\Friend;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Illuminate\Support\Facades\DB;
class FriendExport implements FromCollection,WithHeadings
{
    function __construct($postcode,$miles) 
    {
      $this->postcode    = $postcode;
      $this->miles = $miles;
    }
    public function headings(): array
    { 
        return ['UNIQUE-ID','PHONE', 'POSTCODE'];
    }

public function collection()
{
    #get lat and log based on post coede
    $url = "https://api.postcodes.io/postcodes/".trim($this->postcode);
    $result_string = file_get_contents($url);
    $result = json_decode($result_string, true);
    $latitude  = $result['result']['latitude'];
    $longitude = $result['result']['longitude'];
    $location_details_qry = DB::table("friends")
    ->select(
    'friends.unique_id',
    'friends.phone',
    'friends.postcode',
    DB::raw("6371 * acos(cos(radians('" . $latitude . "'))
    * cos(radians(friends.latitude))
    * cos(radians(friends.longitude) - radians('" . $longitude . "'))
    + sin(radians('" . $latitude . "'))
    * sin(radians(friends.latitude))) AS distance")
    ) ->havingRaw('distance<'.$this->miles)->orderBy('distance', 'asc');
    return $location_details_qry->get();
}

}

export.csv

我不想要導出文件中的最后一列(距離)。幫我解決這個問題。

? 最佳回答:

您可以映射行(https://docs.laravel-excel.com/3.1/exports/mapping.html#mapping-(行)

為此,您的類需要實現WithMapping

namespace App\Exports;
use App\Models\Friend;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\WithMapping;
class FriendExport implements FromCollection, WithHeadings, WithMapping
{
    function __construct($postcode,$miles) 
    {
      $this->postcode    = $postcode;
      $this->miles = $miles;
    }
    public function headings(): array
    { 
        return ['UNIQUE-ID','PHONE', 'POSTCODE'];
    }

public function collection()
{
    #get lat and log based on post coede
    $url = "https://api.postcodes.io/postcodes/".trim($this->postcode);
    $result_string = file_get_contents($url);
    $result = json_decode($result_string, true);
    $latitude  = $result['result']['latitude'];
    $longitude = $result['result']['longitude'];
    $location_details_qry = DB::table("friends")
    ->select(
    'friends.unique_id',
    'friends.phone',
    'friends.postcode',
    DB::raw("6371 * acos(cos(radians('" . $latitude . "'))
    * cos(radians(friends.latitude))
    * cos(radians(friends.longitude) - radians('" . $longitude . "'))
    + sin(radians('" . $latitude . "'))
    * sin(radians(friends.latitude))) AS distance")
    ) ->havingRaw('distance<'.$this->miles)->orderBy('distance', 'asc');
    return $location_details_qry->get();
}

public function map($row): array
{
    return [
        $row->unique_id,
        $row->phone,
        $row->postcode
    ];
}
主站蜘蛛池模板: 老熟妇仑乱一区二区视頻| 亚洲av无码不卡一区二区三区| 成人无码一区二区三区| 亚洲av福利无码无一区二区| 武侠古典一区二区三区中文| 亚洲AV无码一区二区三区牛牛| 色妞AV永久一区二区国产AV| 国产亚洲综合一区二区三区| 亚洲av乱码中文一区二区三区 | 国产一区韩国女主播| 亚洲AV综合色区无码一区爱AV| 国产福利一区二区在线视频 | AV怡红院一区二区三区| 无码一区二区三区亚洲人妻| 中文字幕乱码人妻一区二区三区| 熟妇人妻AV无码一区二区三区| 中文字幕人妻无码一区二区三区| 日本一区午夜艳熟免费| 中文字幕久久久久一区| 日韩精品无码一区二区视频| 国产av成人一区二区三区| 国产成人一区二区三区在线| 亚洲AV成人一区二区三区AV | 福利一区在线视频| 日韩精品无码人妻一区二区三区| 欧洲精品码一区二区三区| 午夜视频在线观看一区| 视频在线观看一区二区三区| 亚洲欧洲一区二区三区| 本免费AV无码专区一区| 无码日韩精品一区二区三区免费 | 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲一区精品伊人久久伊人| 一区二区在线播放视频| 国产裸体歌舞一区二区| 日韩国产精品无码一区二区三区| 亚洲一区二区三区不卡在线播放| 国内自拍视频一区二区三区| 日韩在线一区二区三区视频| 麻豆视传媒一区二区三区| 三上悠亚国产精品一区|