Class LaravelUi5\Core\Http\Controllers\ReportController

extends Controller

Serves a Core Report as a server-rendered HTML document (Core Reporting API v0.9). The sibling of {@see DashboardController}: same library, opposite render contract — a Dashboard emits a JSON control tree, a Report emits an iframe-isolated HTML document (§D1).

The pipeline is intentionally thin:

  1. Resolve the active Report artifact via {@see Ui5ContextInterface}.
  2. Resolve the slots the report depends on ({@see Ui5ReportInterface::getRequiredSlots()}) through the Parameter API chain (Request → [Actor] → Composition → Setting). Every #[Slot] carries a non-null default and SettingParameterSource is last, so required slots always resolve: the report renders on defaults and the host's query-string selection merely overrides — there is no blocking "empty selection" state (§D3).
  3. Invoke the provider's provide(array $slots): array via {@see Container::call}, which preserves method-level DI of services while passing the scalar slot bag explicitly under slots. ExecutableInvoker is deliberately NOT used — it has no scalar-bag seat and the Parameter API lock forbids extending it; Container::call is the same mechanism the invoker wraps internally.
  4. Render the report's Blade view to HTML and return it no-store (per-actor, slot-parameterised; auth-gated by host middleware — §D7).
  • Illuminate\Routing\Controller
    • LaravelUi5\Core\Http\Controllers\ReportController
Methods