1

私のコードでは、いくつかのセット呼び出しでモデルのフィールドを設定しています。

$model->set('field','value');

私の理解が正しければ、これによりフィールド値が$model->data配列に設定されます。その直後 (つまり、同じ要求ですが、コードの異なる部分) で、これらのフィールドにアクセスしてさらに処理したいと考えています。これは次の方法で可能だと思いました:

$value = $model->field('field');

しかし、(コードを見てわかったように)テーブルをクエリしているが、配列field()を使用していないため、これは機能しません。$model->data今私の質問:

  1. $model->set(...)設定されたばかりでまだテーブルに保存されていないモデルからフィールド値を再度読み取る「正しい」方法は何でしょうか? $model->data直接アクセス?
  2. $model->save()フィールド値に再びアクセスできるようにするために、最初に呼び出す必要がありますか?
  3. 間に保存する必要なく、フィールド値を対称的に設定および取得する方法があれば一貫性があると思います。Cakephp も同じように感じますか? ;)
4

1 に答える 1

0
  1. $model->data保存するモデルの現在のデータにアクセスするために使用します。あなたが言ったようにfield()、クエリを実行します。保存する前にデータを変更するには、Model::beforeSave()コールバックを使用するか、モデルのデータを設定する前にデータを変更します。

  2. 別のリクエストで にアクセスする場合は、はい、保存する必要があります。保存する前に現在のリクエストのデータにアクセスするつもりなら、いいえ。データへのアクセス/変更方法については、#1 を参照してください。

  3. 不要です。#1 を参照してください。

于 2012-06-02T20:27:23.623 に答える