1

F3 フレームワークは、ページ内での php 関数呼び出しを処理しないようですか? サイト全体で統一されたphpナビゲーションバーがあります。コントローラー クラスでレイアウト ページを呼び出しますTemplate::serve('layout.php')。レイアウト ページには、次のようにナビゲーション バーを含めます<F3:include href="navbar.php" />。navbar (ナビゲーション) ファイル内で、css ファイルや .js ファイルなどのリソースへの絶対 URL を取得するユーティリティ関数 siteUrl を呼び出します。この関数は、次のようにインクルード ファイルに定義されていますrequire_once "lib/globals.php。navbar.php 内では、たとえば次のように siteUrl を使用します。

<img id="logo" alt="logo" src="<?php echo siteUrl('small-logo.png') ?>" /> 

これはうまくいかないようです。ページの生成されたソースを表示すると、img タグの src セクションは空の文字列 "" です。ただし、F3 フレームワークを使用していない他のページ (つまり、F3::route によってルーティングされていないページ。Web サイトのすべてのページが F3 を使用してルーティングされているわけではありません) からナビゲーション バーを呼び出すと、正常に動作します。

何が問題なのですか?Template::serve を使用してレンダリングされている php ページ内から php 関数を呼び出すにはどうすればよいですか? <?php ?>ページが F3 によって提供されている場合、タグ間のコンテンツ全体が実行されていないようです。Echo ステートメントが表示されていません。回答ありがとうございます。

4

3 に答える 3

2

Template::serve()PHPを許可しません。テンプレートエンジンです。できることがあります。を使用して関数を定義してF3::set('sum',function($a,$b){return 1+2;});から、テンプレートでその関数を参照できます{{@sum(1,2)}}。fatfreeサイトのテンプレートドキュメントを読み直します:http://bcosca.github.com/fatfree/#views-templates

繰り返しになりますが、PHPが機能しない理由はTemplate::serve()、Fatfreeのテンプレート機能を使用しているためです。PHPを使用したい場合は、F3::render()代わりに使用できると思います。ページがレンダリングされ、PHPが許可されますが、すべてのテンプレート機能が失われます。

于 2012-08-08T19:21:57.153 に答える
1

次のように、中括弧で囲まれたテンプレート トークン内で生の php を使用できます。

<img id="logo" alt="logo" src="{{ siteUrl('small-logo.png') }}" />

自動的にエコーします。

しかし、F3::set('image.smallLogo',siteUrl('small-logo.png')) を使用して画像パスを定義し、単純な {{@image.smallLogo}} でそれらを取得すると、はるかに良い感じになります。

于 2012-08-17T10:10:28.900 に答える
0

ページ移動: Fat-Free Framework 3 テンプレート ディレクティブ

于 2013-12-07T04:34:22.430 に答える