ProjectAssetFilter.php 910 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\ModelFilters;
  3. use App\Models\Asset;
  4. use App\Models\Project;
  5. use App\Models\ProjectAsset;
  6. use EloquentFilter\ModelFilter;
  7. class ProjectAssetFilter extends ModelFilter
  8. {
  9. /**
  10. * Related Models that have ModelFilters as well as the method on the ModelFilter
  11. * As [relationMethod => [input_key1, input_key2]].
  12. *
  13. * @var array
  14. */
  15. public $relations = [];
  16. public function apply($query)
  17. {
  18. return $query;
  19. }
  20. public function asset($assetId){
  21. $asset = Asset::find($assetId);
  22. $assetIds=[];
  23. if ($asset){
  24. $assetIds = Asset::where('path','like',"%{$asset->path}%")->get('id');
  25. }
  26. return $this->whereIn('asset_id',$assetIds);
  27. }
  28. public function status($status){
  29. $projectIds = Project::where('status',$status)->get('id');
  30. return $this->whereIn('project_id',$projectIds);
  31. }
  32. }