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