通常、私は Zend Framework を使用していますが、Lithium ではこれが恋しいです。パーシャル。ビューには、私が得た最も近い「要素」を使用できるレンダリングメソッドがあります。
<?php $this->_render('element', 'form); ?>
これは機能しますが、form.html.php ファイルが /views/elements フォルダーにある必要があります。別のパスで検索させることはできますか? /views/users/ と同様に、ファイル /views/users/form.html.php を取得します。
render メソッドがパスを指定できる options 引数を受け入れることがわかったので、次のことを試しました。そこで、この問題を解決するためのヘルパーを作成しました。
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 フォルダーのみを検索します。
私が間違っていることはありますか?