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