We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
@@ -136,7 +136,7 @@ discard block |
||
136 | 136 | */ |
137 | 137 | public function afterField($targetFieldName) |
138 | 138 | { |
139 | - $this->transformFields(function ($fields) use ($targetFieldName) { |
|
139 | + $this->transformFields(function($fields) use ($targetFieldName) { |
|
140 | 140 | return $this->moveField($fields, $targetFieldName, false); |
141 | 141 | }); |
142 | 142 | } |
@@ -148,7 +148,7 @@ discard block |
||
148 | 148 | */ |
149 | 149 | public function beforeField($targetFieldName) |
150 | 150 | { |
151 | - $this->transformFields(function ($fields) use ($targetFieldName) { |
|
151 | + $this->transformFields(function($fields) use ($targetFieldName) { |
|
152 | 152 | return $this->moveField($fields, $targetFieldName, true); |
153 | 153 | }); |
154 | 154 | } |
@@ -160,7 +160,7 @@ discard block |
||
160 | 160 | */ |
161 | 161 | public function makeFirstField() |
162 | 162 | { |
163 | - if (! $this->fields()) { |
|
163 | + if (!$this->fields()) { |
|
164 | 164 | return false; |
165 | 165 | } |
166 | 166 | |
@@ -175,7 +175,7 @@ discard block |
||
175 | 175 | */ |
176 | 176 | public function removeField($name) |
177 | 177 | { |
178 | - $this->transformFields(function ($fields) use ($name) { |
|
178 | + $this->transformFields(function($fields) use ($name) { |
|
179 | 179 | Arr::forget($fields, $name); |
180 | 180 | |
181 | 181 | return $fields; |
@@ -189,7 +189,7 @@ discard block |
||
189 | 189 | */ |
190 | 190 | public function removeFields($array_of_names) |
191 | 191 | { |
192 | - if (! empty($array_of_names)) { |
|
192 | + if (!empty($array_of_names)) { |
|
193 | 193 | foreach ($array_of_names as $name) { |
194 | 194 | $this->removeField($name); |
195 | 195 | } |
@@ -202,7 +202,7 @@ discard block |
||
202 | 202 | public function removeAllFields() |
203 | 203 | { |
204 | 204 | $current_fields = $this->getCleanStateFields(); |
205 | - if (! empty($current_fields)) { |
|
205 | + if (!empty($current_fields)) { |
|
206 | 206 | foreach ($current_fields as $field) { |
207 | 207 | $this->removeField($field['name']); |
208 | 208 | } |
@@ -296,7 +296,7 @@ discard block |
||
296 | 296 | $jsonCastables = ['array', 'object', 'json']; |
297 | 297 | $fieldCasting = $casted_attributes[$field['name']]; |
298 | 298 | |
299 | - if (in_array($fieldCasting, $jsonCastables) && isset($input[$field['name']]) && ! empty($input[$field['name']]) && ! is_array($input[$field['name']])) { |
|
299 | + if (in_array($fieldCasting, $jsonCastables) && isset($input[$field['name']]) && !empty($input[$field['name']]) && !is_array($input[$field['name']])) { |
|
300 | 300 | try { |
301 | 301 | $input[$field['name']] = json_decode($input[$field['name']]); |
302 | 302 | } catch (\Exception $e) { |
@@ -325,7 +325,7 @@ discard block |
||
325 | 325 | */ |
326 | 326 | public function orderFields($order) |
327 | 327 | { |
328 | - $this->transformFields(function ($fields) use ($order) { |
|
328 | + $this->transformFields(function($fields) use ($order) { |
|
329 | 329 | return $this->applyOrderToFields($fields, $order); |
330 | 330 | }); |
331 | 331 | } |
@@ -349,7 +349,7 @@ discard block |
||
349 | 349 | public function hasUploadFields() |
350 | 350 | { |
351 | 351 | $fields = $this->getCleanStateFields(); |
352 | - $upload_fields = Arr::where($fields, function ($value, $key) { |
|
352 | + $upload_fields = Arr::where($fields, function($value, $key) { |
|
353 | 353 | // check if any subfields have uploads |
354 | 354 | if (isset($value['subfields'])) { |
355 | 355 | foreach ($value['subfields'] as $subfield) { |
@@ -421,7 +421,7 @@ discard block |
||
421 | 421 | $alreadyLoaded = $this->getLoadedFieldTypes(); |
422 | 422 | $type = $this->getFieldTypeWithNamespace($field); |
423 | 423 | |
424 | - if (! in_array($type, $this->getLoadedFieldTypes(), true)) { |
|
424 | + if (!in_array($type, $this->getLoadedFieldTypes(), true)) { |
|
425 | 425 | $alreadyLoaded[] = $type; |
426 | 426 | $this->setLoadedFieldTypes($alreadyLoaded); |
427 | 427 | |
@@ -462,7 +462,7 @@ discard block |
||
462 | 462 | */ |
463 | 463 | public function fieldTypeNotLoaded($field) |
464 | 464 | { |
465 | - return ! in_array($this->getFieldTypeWithNamespace($field), $this->getLoadedFieldTypes()); |
|
465 | + return !in_array($this->getFieldTypeWithNamespace($field), $this->getLoadedFieldTypes()); |
|
466 | 466 | } |
467 | 467 | |
468 | 468 | /** |
@@ -474,7 +474,7 @@ discard block |
||
474 | 474 | { |
475 | 475 | $fieldNamesArray = array_column($this->getCleanStateFields(), 'name'); |
476 | 476 | |
477 | - return array_reduce($fieldNamesArray, function ($names, $item) { |
|
477 | + return array_reduce($fieldNamesArray, function($names, $item) { |
|
478 | 478 | if (strpos($item, ',') === false) { |
479 | 479 | $names[] = $item; |
480 | 480 | |
@@ -525,7 +525,7 @@ discard block |
||
525 | 525 | */ |
526 | 526 | public function hasFieldWhere($attribute, $value) |
527 | 527 | { |
528 | - $match = Arr::first($this->getCleanStateFields(), function ($field, $fieldKey) use ($attribute, $value) { |
|
528 | + $match = Arr::first($this->getCleanStateFields(), function($field, $fieldKey) use ($attribute, $value) { |
|
529 | 529 | return isset($field[$attribute]) && $field[$attribute] == $value; |
530 | 530 | }); |
531 | 531 | |
@@ -541,7 +541,7 @@ discard block |
||
541 | 541 | */ |
542 | 542 | public function firstFieldWhere($attribute, $value) |
543 | 543 | { |
544 | - return Arr::first($this->getCleanStateFields(), function ($field, $fieldKey) use ($attribute, $value) { |
|
544 | + return Arr::first($this->getCleanStateFields(), function($field, $fieldKey) use ($attribute, $value) { |
|
545 | 545 | return isset($field[$attribute]) && $field[$attribute] == $value; |
546 | 546 | }); |
547 | 547 | } |
@@ -66,7 +66,7 @@ discard block |
||
66 | 66 | */ |
67 | 67 | public function setValidation($classOrRulesArray = false, $messages = [], $attributes = []) |
68 | 68 | { |
69 | - if (! $classOrRulesArray) { |
|
69 | + if (!$classOrRulesArray) { |
|
70 | 70 | $this->setValidationFromFields(); |
71 | 71 | } elseif (is_array($classOrRulesArray)) { |
72 | 72 | $this->setValidationFromArray($classOrRulesArray, $messages, $attributes); |
@@ -147,7 +147,7 @@ discard block |
||
147 | 147 | return $this->checkRequestValidity($extendedRules, $extendedMessages, $extendedAttributes, $formRequest); |
148 | 148 | } |
149 | 149 | |
150 | - return ! empty($rules) ? $this->checkRequestValidity($rules, $messages, $attributes) : $this->getRequest(); |
|
150 | + return !empty($rules) ? $this->checkRequestValidity($rules, $messages, $attributes) : $this->getRequest(); |
|
151 | 151 | } |
152 | 152 | |
153 | 153 | /** |
@@ -195,7 +195,7 @@ discard block |
||
195 | 195 | if (is_string($validationRules)) { |
196 | 196 | $validationRules = explode('|', $validationRules); |
197 | 197 | } |
198 | - if (! is_array($validationRules)) { |
|
198 | + if (!is_array($validationRules)) { |
|
199 | 199 | $validationRules = [$validationRules]; |
200 | 200 | } |
201 | 201 | foreach ($validationRules as $rule) { |
@@ -238,7 +238,7 @@ discard block |
||
238 | 238 | */ |
239 | 239 | public function isRequired($inputKey) |
240 | 240 | { |
241 | - if (! $this->hasOperationSetting('requiredFields')) { |
|
241 | + if (!$this->hasOperationSetting('requiredFields')) { |
|
242 | 242 | return false; |
243 | 243 | } |
244 | 244 | |
@@ -259,7 +259,7 @@ discard block |
||
259 | 259 | { |
260 | 260 | [$rules, $messages, $attributes] = $this->getValidationDataFromField($field, $parent); |
261 | 261 | |
262 | - if (! empty($rules)) { |
|
262 | + if (!empty($rules)) { |
|
263 | 263 | $this->setValidation($rules, $messages, $attributes); |
264 | 264 | } |
265 | 265 | } |
@@ -274,10 +274,10 @@ discard block |
||
274 | 274 | { |
275 | 275 | $messages = []; |
276 | 276 | collect($fields) |
277 | - ->filter(function ($value, $key) { |
|
277 | + ->filter(function($value, $key) { |
|
278 | 278 | // only keep fields where 'validationMessages' OR there are subfields |
279 | 279 | return array_key_exists('validationMessages', $value) || array_key_exists('subfields', $value); |
280 | - })->each(function ($item, $key) use (&$messages) { |
|
280 | + })->each(function($item, $key) use (&$messages) { |
|
281 | 281 | if (isset($item['validationMessages'])) { |
282 | 282 | foreach ($item['validationMessages'] as $rule => $message) { |
283 | 283 | $messages[$key.'.'.$rule] = $message; |
@@ -285,7 +285,7 @@ discard block |
||
285 | 285 | } |
286 | 286 | // add messages from subfields |
287 | 287 | if (array_key_exists('subfields', $item)) { |
288 | - $subfieldsWithValidationMessages = array_filter($item['subfields'], function ($subfield) { |
|
288 | + $subfieldsWithValidationMessages = array_filter($item['subfields'], function($subfield) { |
|
289 | 289 | return array_key_exists('validationRules', $subfield); |
290 | 290 | }); |
291 | 291 | |
@@ -310,16 +310,16 @@ discard block |
||
310 | 310 | { |
311 | 311 | $attributes = []; |
312 | 312 | collect($fields) |
313 | - ->filter(function ($value, $key) { |
|
313 | + ->filter(function($value, $key) { |
|
314 | 314 | // only keep fields where 'validationAttribute' exists OR there are subfields |
315 | 315 | return array_key_exists('validationAttribute', $value) || array_key_exists('subfields', $value); |
316 | - })->each(function ($item, $key) use (&$attributes) { |
|
316 | + })->each(function($item, $key) use (&$attributes) { |
|
317 | 317 | if (isset($item['validationAttribute'])) { |
318 | 318 | $attributes[$key] = $item['validationAttribute']; |
319 | 319 | } |
320 | 320 | // add attributes from subfields |
321 | 321 | if (array_key_exists('subfields', $item)) { |
322 | - $subfieldsWithValidationAttribute = array_filter($item['subfields'], function ($subfield) { |
|
322 | + $subfieldsWithValidationAttribute = array_filter($item['subfields'], function($subfield) { |
|
323 | 323 | return array_key_exists('validationAttribute', $subfield); |
324 | 324 | }); |
325 | 325 | |
@@ -341,10 +341,10 @@ discard block |
||
341 | 341 | private function getValidationRulesFromFieldsAndSubfields($fields) |
342 | 342 | { |
343 | 343 | $rules = collect($fields) |
344 | - ->filter(function ($value, $key) { |
|
344 | + ->filter(function($value, $key) { |
|
345 | 345 | // only keep fields where 'validationRules' OR there are subfields |
346 | 346 | return array_key_exists('validationRules', $value) || array_key_exists('subfields', $value); |
347 | - })->map(function ($item, $key) { |
|
347 | + })->map(function($item, $key) { |
|
348 | 348 | $validationRules = []; |
349 | 349 | // only keep the rules, not the entire field definition |
350 | 350 | if (isset($item['validationRules'])) { |
@@ -352,7 +352,7 @@ discard block |
||
352 | 352 | } |
353 | 353 | // add validation rules for subfields |
354 | 354 | if (array_key_exists('subfields', $item)) { |
355 | - $subfieldsWithValidation = array_filter($item['subfields'], function ($subfield) { |
|
355 | + $subfieldsWithValidation = array_filter($item['subfields'], function($subfield) { |
|
356 | 356 | return array_key_exists('validationRules', $subfield); |
357 | 357 | }); |
358 | 358 |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | $otherButtons = collect([]); |
25 | 25 | |
26 | 26 | // we get the buttons that belong to the specified stack |
27 | - $stackButtons = $this->buttons()->reject(function ($item) use ($stack, $otherButtons) { |
|
27 | + $stackButtons = $this->buttons()->reject(function($item) use ($stack, $otherButtons) { |
|
28 | 28 | if ($item->stack != $stack) { |
29 | 29 | // if the button does not belong to this stack we just add it for merging later |
30 | 30 | $otherButtons->push($item); |
@@ -36,8 +36,8 @@ discard block |
||
36 | 36 | }); |
37 | 37 | |
38 | 38 | // we parse the ordered buttons |
39 | - collect($order)->each(function ($btnKey) use ($newButtons, $stackButtons) { |
|
40 | - if (! $button = $stackButtons->where('name', $btnKey)->first()) { |
|
39 | + collect($order)->each(function($btnKey) use ($newButtons, $stackButtons) { |
|
40 | + if (!$button = $stackButtons->where('name', $btnKey)->first()) { |
|
41 | 41 | abort(500, 'Button name [«'.$btnKey.'»] not found.'); |
42 | 42 | } |
43 | 43 | $newButtons->push($button); |
@@ -47,7 +47,7 @@ discard block |
||
47 | 47 | // we add the remaining buttons to the end of the ordered ones |
48 | 48 | if (count($newButtons) < count($stackButtons)) { |
49 | 49 | foreach ($stackButtons as $button) { |
50 | - if (! $newButtons->where('name', $button->name)->first()) { |
|
50 | + if (!$newButtons->where('name', $button->name)->first()) { |
|
51 | 51 | $newButtons->push($button); |
52 | 52 | } |
53 | 53 | } |
@@ -116,7 +116,7 @@ discard block |
||
116 | 116 | */ |
117 | 117 | $button = $this->buttons()->firstWhere('name', $name); |
118 | 118 | |
119 | - if (! $button) { |
|
119 | + if (!$button) { |
|
120 | 120 | abort(500, 'CRUD Button "'.$name.'" not found. Please ensure the button exists before you modify it.'); |
121 | 121 | } |
122 | 122 | |
@@ -137,7 +137,7 @@ discard block |
||
137 | 137 | */ |
138 | 138 | public function removeButton($name, $stack = null) |
139 | 139 | { |
140 | - $this->setOperationSetting('buttons', $this->buttons()->reject(function ($button) use ($name, $stack) { |
|
140 | + $this->setOperationSetting('buttons', $this->buttons()->reject(function($button) use ($name, $stack) { |
|
141 | 141 | return $stack == null ? $button->name == $name : ($button->stack == $stack) && ($button->name == $name); |
142 | 142 | })); |
143 | 143 | } |
@@ -148,7 +148,7 @@ discard block |
||
148 | 148 | */ |
149 | 149 | public function removeButtons($names, $stack = null) |
150 | 150 | { |
151 | - if (! empty($names)) { |
|
151 | + if (!empty($names)) { |
|
152 | 152 | foreach ($names as $name) { |
153 | 153 | $this->removeButton($name, $stack); |
154 | 154 | } |
@@ -162,14 +162,14 @@ discard block |
||
162 | 162 | |
163 | 163 | public function removeAllButtonsFromStack($stack) |
164 | 164 | { |
165 | - $this->setOperationSetting('buttons', $this->buttons()->reject(function ($button) use ($stack) { |
|
165 | + $this->setOperationSetting('buttons', $this->buttons()->reject(function($button) use ($stack) { |
|
166 | 166 | return $button->stack == $stack; |
167 | 167 | })); |
168 | 168 | } |
169 | 169 | |
170 | 170 | public function removeButtonFromStack($name, $stack) |
171 | 171 | { |
172 | - $this->setOperationSetting('buttons', $this->buttons()->reject(function ($button) use ($name, $stack) { |
|
172 | + $this->setOperationSetting('buttons', $this->buttons()->reject(function($button) use ($name, $stack) { |
|
173 | 173 | return $button->name == $name && $button->stack == $stack; |
174 | 174 | })); |
175 | 175 | } |
@@ -190,15 +190,15 @@ discard block |
||
190 | 190 | $destinationKey = $this->getButtonKey($destination); |
191 | 191 | $newDestinationKey = ($where == 'before' ? $destinationKey : $destinationKey + 1); |
192 | 192 | |
193 | - $newButtons = $this->buttons()->filter(function ($value, $key) use ($target) { |
|
193 | + $newButtons = $this->buttons()->filter(function($value, $key) use ($target) { |
|
194 | 194 | return $value->name != $target; |
195 | 195 | }); |
196 | 196 | |
197 | - if (! $targetButton) { |
|
197 | + if (!$targetButton) { |
|
198 | 198 | return; |
199 | 199 | } |
200 | 200 | |
201 | - if (! $destinationButton) { |
|
201 | + if (!$destinationButton) { |
|
202 | 202 | return; |
203 | 203 | } |
204 | 204 | |
@@ -207,7 +207,7 @@ discard block |
||
207 | 207 | |
208 | 208 | $newButtons = $firstSlice->push($targetButton); |
209 | 209 | |
210 | - $lastSlice->each(function ($item, $key) use ($newButtons) { |
|
210 | + $lastSlice->each(function($item, $key) use ($newButtons) { |
|
211 | 211 | $newButtons->push($item); |
212 | 212 | }); |
213 | 213 | |
@@ -266,7 +266,7 @@ discard block |
||
266 | 266 | /** |
267 | 267 | * Add a new button to the current CRUD operation. |
268 | 268 | */ |
269 | - public function button(string|array $nameOrAttributes): CrudButton |
|
269 | + public function button(string | array $nameOrAttributes): CrudButton |
|
270 | 270 | { |
271 | 271 | return new CrudButton($nameOrAttributes); |
272 | 272 | } |
@@ -25,7 +25,7 @@ discard block |
||
25 | 25 | |
26 | 26 | public bool $implicit = true; |
27 | 27 | |
28 | - public static function field(string|array|ValidationRule|Rule $rules = []): self |
|
28 | + public static function field(string | array | ValidationRule | Rule $rules = []): self |
|
29 | 29 | { |
30 | 30 | $instance = new static(); |
31 | 31 | $instance->fieldRules = self::getRulesAsArray($rules); |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | |
75 | 75 | public function getFieldRules(): array |
76 | 76 | { |
77 | - return tap($this->fieldRules, function ($rule) { |
|
77 | + return tap($this->fieldRules, function($rule) { |
|
78 | 78 | if (is_a($rule, BackpackCustomRule::class, true)) { |
79 | 79 | $rule = $rule->getFieldRules(); |
80 | 80 | } |
@@ -89,7 +89,7 @@ discard block |
||
89 | 89 | $rules = explode('|', $rules); |
90 | 90 | } |
91 | 91 | |
92 | - if (! is_array($rules)) { |
|
92 | + if (!is_array($rules)) { |
|
93 | 93 | $rules = [$rules]; |
94 | 94 | } |
95 | 95 |
@@ -9,7 +9,7 @@ |
||
9 | 9 | { |
10 | 10 | public array $fileRules; |
11 | 11 | |
12 | - public function file(string|array|ValidationRule|Rule $rules): self |
|
12 | + public function file(string | array | ValidationRule | Rule $rules): self |
|
13 | 13 | { |
14 | 14 | $this->fileRules = self::getRulesAsArray($rules); |
15 | 15 |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | */ |
24 | 24 | public function validate(string $attribute, mixed $value, Closure $fail): void |
25 | 25 | { |
26 | - if (! $value = self::ensureValidValue($value)) { |
|
26 | + if (!$value = self::ensureValidValue($value)) { |
|
27 | 27 | $fail('Unable to determine the value type.'); |
28 | 28 | |
29 | 29 | return; |
@@ -33,12 +33,12 @@ discard block |
||
33 | 33 | $this->validateItems($attribute, $value, $fail); |
34 | 34 | } |
35 | 35 | |
36 | - public static function field(string|array|ValidationRule|Rule $rules = []): self |
|
36 | + public static function field(string | array | ValidationRule | Rule $rules = []): self |
|
37 | 37 | { |
38 | 38 | $instance = new static(); |
39 | 39 | $instance->fieldRules = self::getRulesAsArray($rules); |
40 | 40 | |
41 | - if (! in_array('array', $instance->getFieldRules())) { |
|
41 | + if (!in_array('array', $instance->getFieldRules())) { |
|
42 | 42 | $instance->fieldRules[] = 'array'; |
43 | 43 | } |
44 | 44 | |
@@ -63,7 +63,7 @@ discard block |
||
63 | 63 | } |
64 | 64 | } |
65 | 65 | |
66 | - protected function validateArrayData(string $attribute, Closure $fail, null|array $data = null, null|array $rules = null): void |
|
66 | + protected function validateArrayData(string $attribute, Closure $fail, null | array $data = null, null | array $rules = null): void |
|
67 | 67 | { |
68 | 68 | $data = $data ?? $this->data; |
69 | 69 | $rules = $rules ?? $this->getFieldRules(); |
@@ -81,7 +81,7 @@ discard block |
||
81 | 81 | |
82 | 82 | protected static function ensureValidValue($value) |
83 | 83 | { |
84 | - if (! is_array($value)) { |
|
84 | + if (!is_array($value)) { |
|
85 | 85 | try { |
86 | 86 | $value = json_decode($value, true); |
87 | 87 | } catch (\Exception $e) { |
@@ -95,7 +95,6 @@ discard block |
||
95 | 95 | private function getValidationAttributeString($attribute) |
96 | 96 | { |
97 | 97 | return Str::substrCount($attribute, '.') > 1 ? |
98 | - Str::before($attribute, '.').'.*.'.Str::afterLast($attribute, '.') : |
|
99 | - $attribute; |
|
98 | + Str::before($attribute, '.').'.*.'.Str::afterLast($attribute, '.') : $attribute; |
|
100 | 99 | } |
101 | 100 | } |
@@ -17,7 +17,7 @@ |
||
17 | 17 | */ |
18 | 18 | public function validate(string $attribute, mixed $value, Closure $fail): void |
19 | 19 | { |
20 | - if (! $value = self::ensureValidValue($value)) { |
|
20 | + if (!$value = self::ensureValidValue($value)) { |
|
21 | 21 | $fail('Unable to determine the value type.'); |
22 | 22 | |
23 | 23 | return; |
@@ -25,13 +25,13 @@ discard block |
||
25 | 25 | { |
26 | 26 | $entry = CrudPanelFacade::getCurrentEntry(); |
27 | 27 | |
28 | - if (! array_key_exists($attribute, $this->data) && $entry) { |
|
28 | + if (!array_key_exists($attribute, $this->data) && $entry) { |
|
29 | 29 | return; |
30 | 30 | } |
31 | 31 | |
32 | 32 | $this->validateFieldRules($attribute, $value, $fail); |
33 | 33 | |
34 | - if (! empty($value) && ! empty($this->getFileRules())) { |
|
34 | + if (!empty($value) && !empty($this->getFileRules())) { |
|
35 | 35 | $validator = Validator::make([$attribute => $value], [ |
36 | 36 | $attribute => $this->getFileRules(), |
37 | 37 | ], $this->validator->customMessages, $this->validator->customAttributes); |
@@ -44,7 +44,7 @@ discard block |
||
44 | 44 | } |
45 | 45 | } |
46 | 46 | |
47 | - public static function field(string|array|ValidationRule|Rule $rules = []): self |
|
47 | + public static function field(string | array | ValidationRule | Rule $rules = []): self |
|
48 | 48 | { |
49 | 49 | return parent::field($rules); |
50 | 50 | } |
@@ -23,7 +23,7 @@ |
||
23 | 23 | /** |
24 | 24 | * Get the view / contents that represent the component. |
25 | 25 | */ |
26 | - public function render(): View|Closure|string |
|
26 | + public function render(): View | Closure | string |
|
27 | 27 | { |
28 | 28 | return backpack_view('components.menu-dropdown'); |
29 | 29 | } |