Yii2
のカスタムコンポーネントファイル内に部分ビューをレンダリングする必要があり、 Yii docs に従って、次のような方法でビューインスタンスにアクセスできます。
\Yii::$app->view->renderFile('@app/views/site/license.php');
私は先に行き、試しました:
Yii::$app->view->renderPartial('//my/view/');
...しかし、存在しないメソッドにアクセスしようとしてエラーが発生しました。
次に view class をチェックアウトし、renderPartial
がないことに気付きました。これは代わりに controller クラスのメソッドです。
renderFile
メソッドとrender
メソッドがあります。これらのうちどれを使用すべきですか?
ドキュメントには、render
メソッドにcontrollerクラスの同じ名前のメソッドのようなレイアウトが含まれていると記載されていないため、わからないrenderFileについて
誰かがrenderPartial
が生成する結果と同じ結果を生成する方法を説明できますか?
Yii::$app->controller->renderPartial('myview');
からrenderPartial
を呼び出すこともできます。 yii\base\ControllerのソースコードrenderPartial
は、ビューのrender
メソッドを使用して、Yii::$app->view->render
。 render
は内部でrenderFile
を呼び出すため、基本的にrender
とrenderFile
の間に違いはありません。ただし、render
を使用すると、$view
は、path alias、absolute path with the applicationなどのいくつかの形式でwhithin moduleおよびrelative pathrenderFile
には、絶対ファイルパスまたはパスエイリアスのみを渡すことができます。