Zwykle używam Zend Framework i jest to coś, czego brakuje mi w literze. Częściowe. W widoku jest metoda renderowania, w której możesz użyć elementów, które są najbliżej.Części w licie
<?php $this->_render('element', 'form); ?>
To działa, jednak wymaga, aby plik form.html.php znajdował się w folderze/views/elements. Czy można pozwolić mu szukać innej ścieżki? Podobnie jak/views/users /, więc dostaje plik /views/users/form.html.php.
Próbowałem następujące, ponieważ dowiedziałem się, że render method przyjmuje argument opcji, w którym można określić ścieżkę. Zrobiłem więc pomocnika, aby rozwiązać ten problem dla mnie.
namespace app\extensions\helper;
use lithium\template\TemplateException;
class Partial extends \lithium\template\Helper
{
public function render($name, $folder = 'elements', $data = array())
{
$path = LITHIUM_APP_PATH . '/views/' . $folder;
$options['paths']['element'] = '{:library}/views/' . $folder . '/{:template}.{:type}.php';
return $this->_context->view()->render(
array('element' => $name),
$data,
$options
);
}
}
Jednak nadal wyszukuje tylko w folderze/view/elements, a nie w podanej ścieżce.
Czy jest coś, co robię źle?
Jak zwykle, rozwiązanie jest prostsze/łatwiejsze i mniej inwazyjne niż to przychodzi na myśl. :) – Oerd
Lithium Media klasy jest jedną z jego głównych funkcji. To naprawdę jest tak potężne –