/** * Sets layout template. * * @param TemplateView|string $template * @return $this */ public function setTemplate($template) { if (is_string($template)) { $template = new TemplateView($template); } $template->mergeData(['layout' => $this]); $this->addChild(new Part($template, 'template')); return $this; }
<?php /** @var TemplateView $component */ use Stringy\StaticStringy; use ViewComponents\ViewComponents\Component\TemplateView; foreach ($component->getData() as $key => $value) { ?> <?php if (is_object($value) && !method_exists($value, '__toString')) { continue; } ?> <tr> <td><?php echo StaticStringy::humanize($key); ?> </td> <td><?php if (is_array($value)) { $view = new TemplateView($component->getTemplateName(), $value, $component->getRenderer()); echo $view->render(); } else { echo $value; } ?> </td> </tr> <?php } ?> </table>
public function __construct($templateName = 'controls/pagination', $linkTemplateName = 'controls/pagination/link', RendererInterface $renderer = null) { parent::__construct($templateName, [], $renderer); $this->linkTemplateName = $linkTemplateName; }