@@ 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. |
@@ 296-325 (lines=30) @@ | ||
293 | * |
|
294 | * @return $this |
|
295 | */ |
|
296 | public function model($model, $idField = 'id', $textField = 'name') |
|
297 | { |
|
298 | if ( |
|
299 | !class_exists($model) |
|
300 | || !in_array(Model::class, class_parents($model)) |
|
301 | ) { |
|
302 | throw new \InvalidArgumentException("[$model] must be a valid model class"); |
|
303 | } |
|
304 | ||
305 | $this->options = function ($value) use ($model, $idField, $textField) { |
|
306 | if (empty($value)) { |
|
307 | return []; |
|
308 | } |
|
309 | ||
310 | $resources = []; |
|
311 | ||
312 | if (is_array($value)) { |
|
313 | if (Arr::isAssoc($value)) { |
|
314 | $resources[] = array_get($value, $idField); |
|
315 | } else { |
|
316 | $resources = array_column($value, $idField); |
|
317 | } |
|
318 | } else { |
|
319 | $resources[] = $value; |
|
320 | } |
|
321 | ||
322 | return $model::find($resources)->pluck($textField, $idField)->toArray(); |
|
323 | }; |
|
324 | ||
325 | return $this; |
|
326 | } |
|
327 | ||
328 | /** |