| @@ 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. |
|
| @@ 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. |
|