ご存知のとおり、laravelレンダリングテンプレートはView::make()を通じて実装されており、テンプレートファイルのパスは明示的に指定する必要があります:
コードをコピーします コードは次のとおりです:
関数インデックス()
{
Return View::make('index.index');
}
この場合、テンプレート テーマ関数を自分で実装する必要があるのは、テーマ名に対応するディレクトリにテンプレート ファイルを配置することだけです。たとえば、デフォルトのテーマがデフォルトの場合、次のように記述します。
コードをコピーします コードは次のとおりです:
関数インデックス()
{
Return View::make('default.index.index');
}
コードをコピーします コードは次のとおりです:
関数インデックス()
{
Return View::make('custom.index.index');
}
コードをコピーします コードは次のとおりです:
関数インデックス()
{
Return View::make(Config::get('app.theme','default').'.index.index');
}
コードをコピーします コードは次のとおりです:
関数インデックス()
{
$theme = Config::get('app.theme','default');
$tpl = $theme.'.index.index';
If (!View::exists($tpl)) {
$tpl = 'default.index.index';
}
ビューを返す::make($tpl);
}
非常に多くのコード行があるため、この時点で、Response::view() が View::make() と同等であることがわかり、Response にもカプセル化が行われます。メソッド Response::macro() メソッドを使用してマクロを定義でき、ロジックをマクロにカプセル化できます:
コードをコピーします コードは次のとおりです:
Response::macro('render',function($path,$data=array()){
$theme = Config::get('app.theme','default');
$tpl = $theme.'.'.$path;
If (!View::exists($tpl)) {
$tpl = 'デフォルト。' 。
}
戻り値::view($tpl,$data);
});
使用:
コードをコピーします コードは次のとおりです:
関数インデックス()
{
$bindings = array(
「タイトル」 => 「ホームページ」
);
戻り値::render('index.index',$bindings);
}
テンプレートに渡される変数は、Response::render の 2 番目のパラメータを渡す必要があることに注意してください。
今日のチュートリアルはここまでです。後で詳しく分析していきます。気に入っていただければ幸いです。
http://www.bkjia.com/PHPjc/963120.html