Yiiのビュー内で使用する関数をどこで定義しますか?

osullic

Yii2でWebアプリケーションを開発しています。

テーブルとして表示するために、コントローラーからビューに配列を渡します。配列の各要素は、テーブルの行を表すサブ配列です。ただし、各要素がテーブルセルを表すサブ配列は、文字列と「サブサブ配列」の両方で構成できます。文字列の場合、文字列はテーブルセルに出力されるだけです。サブサブ配列の場合、表示のために配列を「巻き戻し」たいと思います。この場合も、これらのサブサブアレイは、文字列または「サブサブサブアレイ」で構成できます。等々。

これにアプローチする最良の方法は何ですか?ビュー内の配列を巻き戻すための再帰関数を作成する必要があると考えています。文字列の場合は出力し、配列の場合は配列を巻き戻します。

関数自体を書くことは私には簡単に思えますが、実際にはどこで定義しますか?それは私のコントローラークラスに入りますか?何処か別の場所?自分の目で呼ぼうと思っています。Yii構造内で、スコープ内にあり(正しい用語を使用している場合)、正しく呼び出されるようにするにはどうすればよいですか?

したがって、私のコントローラーには、次のようなものがあります。

return $this->render('//messages', [
    'table' => $array_to_unwind
]);

そして、messages.phpビューファイルには、次のようなものがあります。unwind()関数は、文字列の場合は文字列を出力し、配列の場合は配列を巻き戻します。

<table>
  <?php
  foreach ($table as $row) {
    echo '<tr>';
    foreach ($row as $cell) {
      echo '<td>';
      unwind($cell);
      echo '</td>';
    }
    echo '</tr>';
  }
  ?>
</table>
ユピク

このようなことを行うには、独自のHelper(たとえば、path-to-project/components/基本テンプレート内の) クラスを作成し、内部に静的関数を作成する必要があります。

<?php

namespace app\components;

class MyHelper
{
     public static function unwind($param) {
            // here body of your function
     }
}

次に、ビューでそれを呼び出します:

foreach ($row as $cell) {
  echo '<td>';
  echo \app\components\MyHelper::unwind($cell);  //or without echo if your function is doing it, but it will be better if function will return value instead of echoing it
  echo '</td>';
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

関数は、その定義内で異なるパラメーターを使用してそれ自体を呼び出すことができますか?

分類Dev

コールバック型の定義を使用して関数を定義することは可能ですか?

分類Dev

このコードで自己定義関数を使用するにはどうすればよいですか?

分類Dev

関数内の変数にアクセスします。これは、テストデータで使用するモデルを定義します。Tensorflow

分類Dev

関数定義内に「this」なしでbind()メソッドをどのように使用しますか?

分類Dev

Postgres / plpgsqlのビュー定義で変数を使用する方法

分類Dev

JavaScriptの別の関数内で関数を定義します

分類Dev

エラーFORTRANで別の関数内で関数を定義します

分類Dev

Goでビューモデルをどのように定義しますか

分類Dev

ユーザー定義関数内でLAG()を使用するにはどうすればよいですか?

分類Dev

javascriptの関数内からグローバル定数変数を定義することは可能ですか?

分類Dev

Pythonで関数を定義した後、関数スコープ内の変数を変更するにはどうすればよいですか?

分類Dev

後で定義する必要がある場合、関数をどのように使用しますか?

分類Dev

bash関数の定義で未設定の変数を使用することに危険はありますか?

分類Dev

Juliaのモジュール内で変数が定義されているかどうかをどのように確認しますか?

分類Dev

ビュー内で使用するメソッド/関数を作成します

分類Dev

ユーザー定義関数を使用するBigQueryビューを作成するにはどうすればよいですか?

分類Dev

ユーザー定義関数の定義全体を見ることができますか?

分類Dev

Railsビューで、一度だけ使用する定数を定義するのは良いことですか?

分類Dev

ユーザー定義関数を使用したAPLでreduce / scanはどのように機能しますか?

分類Dev

匿名関数でオブジェクトを定義する場合、どのように使用しますか?

分類Dev

AngularJSは、同じモジュール内の別の関数からモジュールで定義された関数を呼び出します

分類Dev

Clojure-関数内で変数を定義しますか?

分類Dev

requirejs:モジュールで定義された関数がrequire()内のローカル変数にアクセスできないのはなぜですか?どうすればこれを実現できますか?

分類Dev

javascriptの関数内からグローバル定数を定義することは可能ですか?

分類Dev

関数内のPythondictのPyCharmユーザー定義タイプが大丈夫であることをどのように伝えるのですか?

分類Dev

内部で別の関数を使用する場合、関数定義はどのようになりますか-JavaScript

分類Dev

すべてのアクティビティで使用される関数をどこで宣言しますか?

分類Dev

さまざまな量のパラメーターを使用して関数を定義するにはどうすればよいですか?

Related 関連記事

  1. 1

    関数は、その定義内で異なるパラメーターを使用してそれ自体を呼び出すことができますか?

  2. 2

    コールバック型の定義を使用して関数を定義することは可能ですか?

  3. 3

    このコードで自己定義関数を使用するにはどうすればよいですか?

  4. 4

    関数内の変数にアクセスします。これは、テストデータで使用するモデルを定義します。Tensorflow

  5. 5

    関数定義内に「this」なしでbind()メソッドをどのように使用しますか?

  6. 6

    Postgres / plpgsqlのビュー定義で変数を使用する方法

  7. 7

    JavaScriptの別の関数内で関数を定義します

  8. 8

    エラーFORTRANで別の関数内で関数を定義します

  9. 9

    Goでビューモデルをどのように定義しますか

  10. 10

    ユーザー定義関数内でLAG()を使用するにはどうすればよいですか?

  11. 11

    javascriptの関数内からグローバル定数変数を定義することは可能ですか?

  12. 12

    Pythonで関数を定義した後、関数スコープ内の変数を変更するにはどうすればよいですか?

  13. 13

    後で定義する必要がある場合、関数をどのように使用しますか?

  14. 14

    bash関数の定義で未設定の変数を使用することに危険はありますか?

  15. 15

    Juliaのモジュール内で変数が定義されているかどうかをどのように確認しますか?

  16. 16

    ビュー内で使用するメソッド/関数を作成します

  17. 17

    ユーザー定義関数を使用するBigQueryビューを作成するにはどうすればよいですか?

  18. 18

    ユーザー定義関数の定義全体を見ることができますか?

  19. 19

    Railsビューで、一度だけ使用する定数を定義するのは良いことですか?

  20. 20

    ユーザー定義関数を使用したAPLでreduce / scanはどのように機能しますか?

  21. 21

    匿名関数でオブジェクトを定義する場合、どのように使用しますか?

  22. 22

    AngularJSは、同じモジュール内の別の関数からモジュールで定義された関数を呼び出します

  23. 23

    Clojure-関数内で変数を定義しますか?

  24. 24

    requirejs:モジュールで定義された関数がrequire()内のローカル変数にアクセスできないのはなぜですか?どうすればこれを実現できますか?

  25. 25

    javascriptの関数内からグローバル定数を定義することは可能ですか?

  26. 26

    関数内のPythondictのPyCharmユーザー定義タイプが大丈夫であることをどのように伝えるのですか?

  27. 27

    内部で別の関数を使用する場合、関数定義はどのようになりますか-JavaScript

  28. 28

    すべてのアクティビティで使用される関数をどこで宣言しますか?

  29. 29

    さまざまな量のパラメーターを使用して関数を定義するにはどうすればよいですか?

ホットタグ

アーカイブ