ファイルを動的にインクルードする ThinkPHP の方法
この記事の例では、ThinkPHP にファイルを動的に組み込む方法について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
問題の説明: プロジェクトの作業中に問題が発生することもよくあります。通常、ホームページには管理を容易にするために、これらをインクルード ファイルを使用して実装する必要があります。上記はインクルードを操作する最も簡単な方法ですが、実行プロセス中に、リクエスト時にテンプレート ファイルのみがリクエストされることがわかりました。これはいわゆる静的インクルージョンですが、メニューが動的に生成される場合は、これが行われます。扱いが難しいです。
オンラインで解決策を見つける: ウィジェットを使用する
1. ページに分類された表示ウィジェットを実装します。まず、次のようにウィジェット コントローラー レイヤー CateWidget を定義する必要があります。
コードをコピーします コードは次のとおりです:class CateWidget extends Action {
パブリック関数メニュー(){
'menuWidget' を返します
;
}
}
一般的なアクションとは異なり、ウィジェットパッケージ内で定義されていることに注意してください
2. 次に、テンプレート内の R メソッドを通じてこの Widget を呼び出します (拡張された Widget メソッドはテンプレート内の W メソッドを使用します)。R 関数について知らない場合は、こちらを参照してください。 www.thinkphp.cn/info/134.html)
{:R('カテゴリー/メニュー','','ウィジェット')}
実行後の出力は次のとおりです: menuWidget
3. CateWidget クラスのメニューメソッドが次のように変更された場合:
コードをコピーします
コードは次のとおりです:class CateWidget extends Action {
パブリック関数メニュー(){
「メニューウィジェット」をエコーします
;
}
}
4. テンプレート内の使用法を次のように変更する必要があります:
コードをコピーします
コードは次のとおりです:{~R('Cate/Menu','','Widget')}
5. ウィジェットを呼び出すときにパラメーターを使用する必要がある場合は、次のように定義できます。
コードをコピーします
コードは次のとおりです:class CateWidget extends Action {
公開関数メニュー($id,$name){
エコー $id.':'.$name
;
}
}
6. テンプレート内のパラメータを呼び出すには、次を使用します:
コードをコピーします
コードは次のとおりです:{:R('Cate/Menu',array(5,'thinkphp'),'Widget')}
5:thinkphpを出力します
7. より複雑な例を見てみましょう:
コードをコピーします
コードは次のとおりです:class CateWidget extends Action {
パブリック関数メニュー(){
$menu = M('Cate')->getField('id,title');
$this->assign('menu',$menu);
$this->display('Cate:menu');
}
}
8. CateWiget クラスは、テンプレート ファイル Tpl/Cate/menu.html をレンダリングします。テンプレートの呼び出しの柔軟性も、このメソッドを使用してウィジェットを実装する場合の違いです (ウィジェット拡張メソッドでは、レンダリングするために renderFile メソッドを呼び出す必要があります)。テンプレート)。
menu.html テンプレート ファイルでの使用: {$key}:{$title}
この記事で説明した内容が、皆様の ThinkPHP フレームワーク プログラミングに役立つことを願っています。
http://www.bkjia.com/PHPjc/919615.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/919615.html技術記事 ThinkPHP によるファイルの動的インクルード方法 この記事では、ThinkPHP によるファイルを動的にインクルードする方法の例について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです: 問題の説明: Doing...