Code Duplication    Length = 36-36 lines in 2 locations

src/Form/Field/Select.php 1 location

@@ 199-234 (lines=36) @@
196
     *
197
     * @return $this
198
     */
199
    public function model($model, $idField = 'id', $textField = 'name')
200
    {
201
        $this->options = function ($resource) use ($model, $idField, $textField) {
202
            if (null == $resource) {
203
                return [];
204
            }
205
206
            if (is_array($resource) && !empty($resource) && isset($resource[0]['id'])) {
207
                $resource = array_map(function ($res) {
208
                    return $res['id'];
209
                }, $resource);
210
            } elseif (is_array($resource) && !empty($resource) && isset($resource['id'])) {
211
                $resource = $resource['id'];
212
            }
213
214
            $model = $model::find($resource);
215
216
            if ($model) {
217
                if ($model instanceof \Illuminate\Support\Collection) {
218
                    $results = [];
219
220
                    foreach ($model as $result) {
221
                        $results[$result->{$idField}] = $result->{$textField};
222
                    }
223
224
                    return $results;
225
                }
226
227
                return [$model->{$idField} => $model->{$textField}];
228
            }
229
230
            return [];
231
        };
232
233
        return $this;
234
    }
235
236
    /**
237
     * Load options from remote.

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

@@ 98-133 (lines=36) @@
95
     *
96
     * @return $this
97
     */
98
    public function model($model, $idField = 'id', $textField = 'name')
99
    {
100
        $this->options = function ($resource) use ($model, $idField, $textField) {
101
            if (null == $resource) {
102
                return [];
103
            }
104
105
            if (is_array($resource) && !empty($resource) && isset($resource[0]['id'])) {
106
                $resource = array_map(function ($res) {
107
                    return $res['id'];
108
                }, $resource);
109
            } elseif (is_array($resource) && !empty($resource) && isset($resource['id'])) {
110
                $resource = $resource['id'];
111
            }
112
113
            $model = $model::find($resource);
114
115
            if ($model) {
116
                if ($model instanceof \Illuminate\Support\Collection) {
117
                    $results = [];
118
119
                    foreach ($model as $result) {
120
                        $results[$result->{$idField}] = $result->{$textField};
121
                    }
122
123
                    return $results;
124
                }
125
126
                return [$model->{$idField} => $model->{$textField}];
127
            }
128
129
            return [];
130
        };
131
132
        return $this;
133
    }
134
135
    /**
136
     * Load options from remote.