Viewing File: /home/ubuntu/route-and-root-backend-base/app/Exports/OrdersExport.php
<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Illuminate\Http\Request;
use App\Models\Order;
use App\Helpers\Helper;
class OrdersExport implements FromView
{
public function __construct(Request $request)
{
$this->search_key = $request->search_key;
$this->status = $request->status;
$this->order_status = $request->order_status;
$this->user_id = $request->user_id;
}
/**
* @return \Illuminate\Support\Collection
*/
public function view(): View {
$orders = Order::Query()
->with(['user:id,name'])
->withSum('orderProducts', 'quantity')
->when(isset($this->status), function ($query){
$query->where('status', $this->status);
})->when(isset($this->order_status), function ($query){
$query->where('order_status', $this->order_status);
})->when(isset($this->user_id), function ($query){
$query->where('user_id', $this->user_id);
})->when($this->search_key, function($query) {
$query->where('unique_id', "LIKE", "%" . $this->search_key . "%")
->orWhereHas('user', function ($query){
$query->where('name', "LIKE", "%" . $this->search_key . "%")
->orWhere('email', "LIKE", "%" . $this->search_key . "%")
->orWhere('mobile', "LIKE", "%" . $this->search_key . "%");
});
})->orderBy('created_at', 'DESC')->get();
return view('exports.orders', [ 'data' => $orders ]);
}
}
Back to Directory
File Manager