Code Duplication    Length = 30-31 lines in 2 locations

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

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

src/Form/Field/Select.php 1 location

@@ 226-256 (lines=31) @@
223
     *
224
     * @return $this
225
     */
226
    public function model($model, $idField = 'id', $textField = 'name')
227
    {
228
        if (
229
            !class_exists($model)
230
            || !in_array(Model::class, class_parents($model))
231
        ) {
232
            throw new \InvalidArgumentException("[$model] must be a valid model class");
233
        }
234
        $this->options = function ($value) use ($model, $idField, $textField) {
235
            if (empty($value)) {
236
                return [];
237
            }
238
            $resources = [];
239
            if (is_array($value)) {
240
                if (Arr::isAssoc($value)) {
241
                    $resources[] = Arr::get($value, $idField);
242
                } else {
243
                    $resources = array_column($value, $idField);
244
                }
245
            } else {
246
                $resources[] = $value;
247
            }
248
249
            return $model::find($resources)->pluck($textField, $idField)->toArray();
250
        };
251
252
        return $this;
253
    }
254
255
    /**
256
     * Load options from remote.
257
     *
258
     * @param string $url
259
     * @param array  $parameters