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