0

コントローラはビ​​ューに渡さ$resultsれます。ビューには次のものがあります。

<?php foreach ($results as $result): ?>
<?php echo $result->time_start.' '.$result->time_finished;?>
<?php endforeach;?>

また、 $ resultごとに差($result->time_finishedマイナス$result->time_start)をフォーマットで表示したいと思います。hh:mm:ssmm <10の場合、ゼロが表示されるため、63秒は0:1:3ではなく00:01:03として表示されます。

ビューでこのスタッフ全員を行う必要がありますか?関数を使うのは理にかなっていると思います。この関数をモデルに記述して、ビューから呼び出す必要がありますか?

foreachでない場合は、コントローラーから関数を呼び出し、適切なhh:mm:ssをコントローラーからのビューに渡します。しかし、この場合はどうすればよいですか?

4

2 に答える 2

2

これが私がすることです:私はあなたの日付をフォーマットするための静的関数を書きます(私自身のクラスを使用するか、KohanaDateクラスを拡張します)。私はあなたの見解でこの関数を直接使用します:

<?php echo SomeClass::date_format($result->time_start, $result->time_finished) ?>

なぜビューに?この関数はフォーマットに使用されるため、実際には異なるデータセットを返しません。

于 2013-01-14T08:06:34.047 に答える
1

コード内で複数回使用する必要がある関数がある場合は、1. 独自のヘルパーを作成するか、2. Date ヘルパーで Kohana のビルドを拡張することが理にかなっています。ヘルパーは、モデルではなく、この種の操作に使用されます。また、コードが複雑になる場合は、ビューでも使用されません。

Kohana 3.2 と 3.3 のどちらを使用しているかはわかりませんが、両者の命名規則には少し違いがあります (大文字のファイル名とクラス名を意味する 3.3 PSR-0 が実装されているため)。ヘルパー向けの DOCS は次のとおりです。 :

http://kohanaframework.org/3.2/guide/kohana/helpers

http://kohanaframework.org/3.3/guide/kohana/helpers

既存のクラスを拡張する場合:

http://kohanaframework.org/3.2/guide/kohana/files

http://kohanaframework.org/3.3/guide/kohana/files

Kohana 3.2を使用している場合は、答えを提供します。

解決策 1: Kohana Date クラスを拡張することは理にかなっています。application/classes に date.php という名前のファイルを作成します。ファイルは次のようになります。

class Date extends Kohana_Date {
  public static function some_function_to_convert($date1, $date2) { } ;
}

あなたの見解では、これを行います:Date::some_function_to_convert($date1, $date2);

解決策 2: application/classes/helper ディレクトリに独自のヘルパーを作成します。名前を date_conversion.php にします。ファイルは次のようになります。

<?php defined('SYSPATH') or die('No direct script access.');

class helper_date_conversion {
  public static function some_function_to_convert($date1, $date2) { } ;
}

あなたの見解では、これを行います:

helper_date_conversion::some_function_to_convert($date1, $date2);
于 2013-01-14T15:37:25.207 に答える