laravel / nova-issues

553 stars 34 forks source link

BooleanFilter $value does not have the right keys #1049

Closed m-lotze closed 5 years ago

m-lotze commented 5 years ago

Description:

I have created a boolean filter like this:

class PhotographerCategory extends BooleanFilter
{
    /**
     * 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)
    {
        dump($value);

        return $query;
    }

    /**
     * Get the filter's available options.
     *
     * @param \Illuminate\Http\Request $request
     *
     * @return array
     */
    public function options(Request $request)
    {
        $test = PhotographerCategoryModel::orderBy('id')
            ->get(['id', 'name'])
            ->mapWithKeys(function ($item) {
                return [$item['id'] . ' - ' . $item['name'] => $item['id']];
            })
            ->all();

        dump($test);

        return $test;
    }
}

The dump server gives me this output for $test:

array:10 [
  "1 - dolores1" => 1
  "2 - est" => 2
  "3 - sed" => 3
  "4 - incidunt" => 4
  "5 - velit" => 5
  "6 - rerum" => 6
  "7 - cum" => 7
  "8 - dignissimos" => 8
  "9 - ea" => 9
  "10 - fuga" => 10
]

and this for $value:

array:10 [
  0 => false
  1 => false
  2 => false
  3 => false
  4 => false
  5 => false
  6 => false
  7 => false
  8 => false
  9 => false
]

Shouldnt the array keys for $value be the values from $test, like stated in the docs at https://nova.laravel.com/docs/1.0/filters/defining-filters.html#boolean-filters?

davidhemphill commented 5 years ago

This has been fixed and will be included in the next release. 👍