Viewing File: /home/ubuntu/vedadeals-backend-base/app/Exports/ProductsExport.php
<?php
namespace App\Exports;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Illuminate\Http\Request;
use App\Models\Product;
use App\Helpers\Helper;
use Auth;
class ProductsExport implements FromView
{
public function __construct(Request $request)
{
$this->search_key = $request->search_key;
$this->status = $request->status;
$this->stock_status = $request->stock_status;
$this->category_id = $request->category_id;
$this->sub_category_id = $request->sub_category_id;
$this->deleted = $request->deleted;
}
/**
* @return \Illuminate\Support\Collection
*/
public function view(): View {
$base_query = Product::Query()
->with(['category:id,name', 'subCategory:id,name'])
->when($this->deleted, function($query) {
$query->withTrashed()->whereNotNull('deleted_at');
})
->when(isset($this->status), function ($query) {
$query->where('status', $this->status);
})->when(isset($this->stock_status), function ($query) {
$query->where('stock_status', $this->stock_status);
})->when($this->category_id, function ($query) {
$query->where('category_id', $this->category_id);
})->when($this->sub_category_id, function ($query) {
$query->where('sub_category_id', $this->sub_category_id);
})->when($this->search_key, function($query) {
$query->where('name', "LIKE", "%" . $this->search_key . "%");
$query->orWhere('unique_id', "LIKE", "%" . $this->search_key . "%");
});
$products = $base_query->orderBy('created_at', 'DESC')->get();
return view('exports.products', [ 'data' => $products ]);
}
}
Back to Directory
File Manager