• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

conedevelopment / root / 15084089635

17 May 2025 10:00AM UTC coverage: 77.93% (+0.04%) from 77.891%
15084089635

push

github

web-flow
Modernize back-end.yml (#240)

3291 of 4223 relevant lines covered (77.93%)

36.04 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

8.33
/src/Fields/Fieldset.php
1
<?php
2

3
namespace Cone\Root\Fields;
4

5
use Closure;
6
use Cone\Root\Traits\RegistersRoutes;
7
use Cone\Root\Traits\ResolvesFields;
8
use Illuminate\Database\Eloquent\Model;
9
use Illuminate\Http\Request;
10
use Illuminate\Routing\Router;
11
use Illuminate\Support\Str;
12

13
class Fieldset extends Field
14
{
15
    use RegistersRoutes;
16
    use ResolvesFields;
17

18
    /**
19
     * The Blade template.
20
     */
21
    protected string $template = 'root::fields.fieldset';
22

23
    /**
24
     * Create a new field instance.
25
     */
26
    public function __construct(string $label, Closure|string|null $modelAttribute = null)
1✔
27
    {
28
        parent::__construct($label, $modelAttribute);
1✔
29

30
        $this->hiddenOn(['index', 'show']);
1✔
31
    }
32

33
    /**
34
     * Get the URI key.
35
     */
36
    public function getUriKey(): string
×
37
    {
38
        return str_replace('.', '-', $this->getRequestKey());
×
39
    }
40

41
    /**
42
     * Handle the callback for the field resolution.
43
     */
44
    protected function resolveField(Request $request, Field $field): void
×
45
    {
46
        $field->setAttribute('form', $this->getAttribute('form'));
×
47
        $field->resolveErrorsUsing($this->errorsResolver);
×
48

49
        if ($field instanceof Relation) {
×
50
            $field->resolveRouteKeyNameUsing(
×
51
                fn (): string => Str::of($field->getRelationName())->singular()->ucfirst()->prepend($this->getModelAttribute())->value()
×
52
            );
×
53
        }
54
    }
55

56
    /**
57
     * Register the routes using the given router.
58
     */
59
    public function registerRoutes(Request $request, Router $router): void
×
60
    {
61
        $router->prefix($this->getUriKey())->group(function (Router $router) use ($request): void {
×
62
            $this->resolveFields($request)->registerRoutes($request, $router);
×
63
        });
×
64
    }
65

66
    /**
67
     * {@inheritdoc}
68
     */
69
    public function persist(Request $request, Model $model, mixed $value): void
×
70
    {
71
        $this->resolveFields($request)->each(static function (Field $field) use ($request, $model): void {
×
72
            $field->persist($request, $model, $field->getValueForHydrate($request));
×
73
        });
×
74
    }
75

76
    /**
77
     * {@inheritdoc}
78
     */
79
    public function resolveHydrate(Request $request, Model $model, mixed $value): void
×
80
    {
81
        $this->resolveFields($request)->each(static function (Field $field) use ($request, $model): void {
×
82
            $field->resolveHydrate($request, $model, $field->getValueForHydrate($request));
×
83
        });
×
84
    }
85

86
    /**
87
     * {@inheritdoc}
88
     */
89
    public function invalid(Request $request): bool
×
90
    {
91
        return parent::invalid($request)
×
92
            || $this->resolveFields($request)->some(fn (Field $field): bool => $field->invalid($request));
×
93
    }
94

95
    /**
96
     * {@inheritdoc}
97
     */
98
    public function toInput(Request $request, Model $model): array
×
99
    {
100
        return array_merge(parent::toInput($request, $model), [
×
101
            'fields' => $this->resolveFields($request)->mapToInputs($request, $model),
×
102
        ]);
×
103
    }
104

105
    /**
106
     * {@inheritdoc}
107
     */
108
    public function toValidate(Request $request, Model $model): array
×
109
    {
110
        return array_merge(
×
111
            parent::toValidate($request, $model),
×
112
            $this->resolveFields($request)->mapToValidate($request, $model)
×
113
        );
×
114
    }
115
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc