ThinkPHP3.0 バージョンのウィジェットは、アクションとビューのサポートが比較的不十分で、基本的なテンプレートのレンダリング出力しか実現できません。バージョン 3.1 のリリースによってもたらされたマルチレイヤー MVC 機能は、ウィジェットの実装方法に新しいアイデアをもたらしました。その実装方法を見てみましょう。
ThinkPHP 3.1 ではマルチレイヤー MVC のサポートが追加されているため、バージョン 3.1 ではマルチレイヤー コントローラー機能をサポートできるため、コントローラー レイヤーに別のレイヤーであるウィジェット レイヤーを追加できます。
まず、プロジェクトのLibディレクトリ配下にWidgetディレクトリを作成し、以下のようにTestWidgetクラス(Lib/Widget/TestWidget.class.php)を作成します。
リーリー定義が完了したら、このウィジェットをどのように呼び出しますか? W メソッドは絶対に機能しません。今回は R メソッドが必要です。
R メソッドの機能はモジュールの操作をリモートで呼び出すことですが、3.1 ではすべてのコントローラー層の操作メソッドの呼び出しをサポートできる新しい機能が追加されました。そのため、次のようにテンプレートでウィジェットを呼び出すことができます。
リーリー
TestWidget クラスで Model を呼び出して他のデータを出力できます。独自のテンプレートをレンダリングする必要がある場合は、表示メソッドを直接呼び出すことができます。
リーリー
リーリー
リーリー