Частицы в литии

Обычно я использую Zend Framework, но этого мне не хватает в Lithium. Частицы. В представлении есть метод рендеринга, в котором вы можете использовать «элементы», которые мне ближе всего.

_render('element', 'form); ?>

Это работает, однако требует, чтобы файл form.html.php находился в папке /views/elements. Можно ли разрешить поиск по другому пути? Подобно /views/users/, он получает файл /views/users/form.html.php.

Я пробовал следующее, так как обнаружил, что метод рендерингапринимает аргумент опций, в котором вы можете указать путь. Поэтому я сделал помощника, чтобы решить эту проблему для меня.

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
    );
}
}

Однако он по-прежнему ищет только в папке /view/elements, а не по указанному мной пути.

Я что-то делаю не так?

6
задан Shiplu Mokaddim 14 May 2012 в 11:09
поделиться