--- /dev/null
+<?php
+
+namespace App\Nova\Filters;
+
+use App\Organization;
+use Illuminate\Http\Request;
+use Laravel\Nova\Filters\Filter;
+
+class FilterByOrganization extends Filter
+{
+ /**
+ * The filter's component.
+ *
+ * @var string
+ */
+ public $component = 'select-filter';
+
+ /**
+ * Apply the filter to the given query.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ * @param mixed $value
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function apply(Request $request, $query, $value)
+ {
+ return $query->where('organization_id', $value);
+ }
+
+ /**
+ * Get the filter's available options.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @return array
+ */
+ public function options(Request $request)
+ {
+ return Organization::query()
+ ->whereHas('members')
+ ->orderBy('name')
+ ->pluck('id', 'name')
+ ->toArray();
+ }
+}
use App\Nova\Actions\StartTrial;
use App\Nova\Actions\ValidateAddress;
use App\Nova\Actions\VerifyEmail;
+use App\Nova\Filters\FilterByOrganization;
use App\Nova\Lenses\FailedMailgun;
use App\Nova\Lenses\MailgunStatus;
use App\Nova\Lenses\NonDeliverableAddresses;
*/
public function filters(Request $request)
{
- return [];
+ return [
+ new FilterByOrganization
+ ];
}
/**