Code Duplication    Length = 30-30 lines in 2 locations

src/Grid/Filter/Presenter/Select.php 1 location

@@ 111-140 (lines=30) @@
108
     *
109
     * @return $this
110
     */
111
    public function model($model, $idField = 'id', $textField = 'name')
112
    {
113
        if (!class_exists($model)
114
            || !in_array(Model::class, class_parents($model))
115
        ) {
116
            throw new \InvalidArgumentException("[$model] must be a valid model class");
117
        }
118
119
        $this->options = function ($value) use ($model, $idField, $textField) {
120
            if (empty($value)) {
121
                return [];
122
            }
123
124
            $resources = [];
125
126
            if (is_array($value)) {
127
                if (Arr::isAssoc($value)) {
128
                    $resources[] = array_get($value, $idField);
129
                } else {
130
                    $resources = array_column($value, $idField);
131
                }
132
            } else {
133
                $resources[] = $value;
134
            }
135
136
            return $model::find($resources)->pluck($textField, $idField)->toArray();
137
        };
138
139
        return $this;
140
    }
141
142
    /**
143
     * Load options from remote.

src/Form/Field/Select.php 1 location

@@ 270-299 (lines=30) @@
267
     *
268
     * @return $this
269
     */
270
    public function model($model, $idField = 'id', $textField = 'name')
271
    {
272
        if (
273
            !class_exists($model)
274
            || !in_array(Model::class, class_parents($model))
275
        ) {
276
            throw new \InvalidArgumentException("[$model] must be a valid model class");
277
        }
278
279
        $this->options = function ($value) use ($model, $idField, $textField) {
280
            if (empty($value)) {
281
                return [];
282
            }
283
284
            $resources = [];
285
286
            if (is_array($value)) {
287
                if (Arr::isAssoc($value)) {
288
                    $resources[] = array_get($value, $idField);
289
                } else {
290
                    $resources = array_column($value, $idField);
291
                }
292
            } else {
293
                $resources[] = $value;
294
            }
295
296
            return $model::find($resources)->pluck($textField, $idField)->toArray();
297
        };
298
299
        return $this;
300
    }
301
302
    /**