| @@ 201-230 (lines=30) @@ | ||
| 198 | * |
|
| 199 | * @return $this |
|
| 200 | */ |
|
| 201 | public function model($model, $idField = 'id', $textField = 'name') |
|
| 202 | { |
|
| 203 | if (!class_exists($model) |
|
| 204 | || !in_array(Model::class, class_parents($model)) |
|
| 205 | ) { |
|
| 206 | throw new \InvalidArgumentException("[$model] must be a valid model class"); |
|
| 207 | } |
|
| 208 | ||
| 209 | $this->options = function ($value) use ($model, $idField, $textField) { |
|
| 210 | if (empty($value)) { |
|
| 211 | return []; |
|
| 212 | } |
|
| 213 | ||
| 214 | $resources = []; |
|
| 215 | ||
| 216 | if (is_array($value)) { |
|
| 217 | if (Arr::isAssoc($value)) { |
|
| 218 | $resources[] = array_get($value, $idField); |
|
| 219 | } else { |
|
| 220 | $resources = array_column($value, $idField); |
|
| 221 | } |
|
| 222 | } else { |
|
| 223 | $resources[] = $value; |
|
| 224 | } |
|
| 225 | ||
| 226 | return $model::find($resources)->pluck($textField, $idField)->toArray(); |
|
| 227 | }; |
|
| 228 | ||
| 229 | return $this; |
|
| 230 | } |
|
| 231 | ||
| 232 | /** |
|
| 233 | * Load options from remote. |
|
| @@ 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. |
|