1

このように見えるmodel.phpファイルのモデルクラス内のビュー関数内に関数があります

function sqlToUnix($date){
    $YMDThenHMS = explode(" ", $date);
    $YMD = explode("-", $YMDThenHMS[0]);
    $HMS = explode(":", $YMDThenHMS[1]);
    $UnixTime = mktime($HMS[0], $HMS[1], $HMS[2], $YMD[1], $YMD[2], $YMD[0]);

    return $UnixTime;
}

問題は、$UnixTime を返すときです。戻り値はモデル コントローラー固有のビュー関数内で使用できますが、ビューがレンダリングされません (スクリプトの伝播が停止します)。

このような関数を構築して、ANYWHERE ANY Controller で使用できる場所はありますか?

PHP自体に組み込まれているtime()関数など、どこでもsqlToUnixを使えるようにしたい

4

5 に答える 5

0

特定の関数について、UnixTime形式を返す組み込み関数がないことを確認しますか?

このような関数を構築して、任意のコントローラーのどこでも使用できる場所はありますか?

class MyHelpers
{
    public static function sqlToUnix($SQLDate)
    {
        // code
        return $result;
    }
}

// call me this way, anywhere:
$result = MyHelpers::sqlToUnix($SQLDate);
于 2009-02-12T07:39:51.137 に答える
0

bootstrap.phpという関数を書くことができます(ただし、代わりにbootstrap.phpから別のPHPファイルを含める方がよいでしょう)。

私は通常、/ app / configディレクトリ内のファイルに追加の関数または構成を持っており、それをbootstrap.phpファイルに含めます。

require_once(APP.'config'.DS.'my_file_of_whizzy_functions.php');

この関数は、CakePHPアプリ全体で利用できるようになります。

それとは別に、strtotime($ sqlDate);を実行します。SQL時間をUNIXタイムスタンプに変換しませんか?

于 2009-09-09T15:26:15.380 に答える
0

関数を appController.php に格納することで問題を解決し、使用する必要があるときに関数を呼び出すことができました

$this->sqlToUnix($SQLDate);

質問して申し訳ありませんが、これを投稿したときに appController を思い出しました ><

于 2009-02-12T06:47:56.113 に答える
0

コントローラーを介してこの関数にアクセスし、ビューに渡すことができます。

//Controller

//inside a controller action
{
$TIMESTAMP = $this->Model->sql2unix($this->Model->getTimestamp());
$this->set('timestampe',$TIMESTAMP);
// or does this even do not work?
}

それ以外の場合は、コンポーネントを作成できます

//inside the component // inside of a component method
{
$MODEL = loadModel('ModelName');
$return = $MODEL->sql2unix($MODEL->getTimestamp());

return $return;
}

コードを配置する場所はほとんど「重要ではありません」。cakephp のフォルダー/クラス/ヘルパー/メソッド/コンポーネント構造に従うだけです。コンポーネントまたはヘルパーに関するマニュアルの部分を読めば、すぐにすべてを理解できます。

于 2009-10-21T19:29:54.320 に答える