1

フォーム ヘルパーを使用して日時選択を作成し、$this->data.

以下のようになります。

[Timetable] => Array
    (
        [event_id] => 133
        [location_id] => 39
        [start] => Array
            (
                [hour] => 09
                [min] => 06
                [day] => 11
                [month] => 03
                [year] => 2011
            )

    )

でも、もっとこうなりたい…。

[Timetable] => Array
    (
        [event_id] => 133
        [location_id] => 39
        [start] => 2011-03-11 09:06:00

    )

これに変換する方法はありますか?

4

3 に答える 3

2

$this->data['Timetable']['start']次のように、コントローラーで var を再構築できます。

$this->data['Timetable']['start'] = $this->data['Timetable']['start']['year']
    .'-'.$this->data['Timetable']['start']['month']
    .'-'.$this->data['Timetable']['start']['day']
    .' '.$this->data['Timetable']['start']['hour']
    .':'.$this->data['Timetable']['start']['min'];

うまくいくはずです。

于 2011-03-11T10:51:51.547 に答える
1

これはクックブックには記載されていませんが、その配列をデータベースに適した形式に変換するためにモデルが使用する関数はModel::deconstruct($field, $data). 次のように使用できます。

$startAsString = $this->Timetable->deconstruct(
    'start', $this->data['Timetable']['start']
);

このソリューションには、フォームによって送信されたデータの構造やデータベースがデータを格納する方法についてコントローラーが認識できるようにすることで、MVC の抽象化を壊さないという利点があります。

于 2011-03-11T14:41:53.400 に答える