1
カスタムバリデータのフィールドのリストをループして、データベースに既に格納されている値と値を比較する必要があります。symfony:Doctrineオブジェクトのフィールドをループする方法
ここに私のコード:
$healthUser = PersonTable::getInstance->getHealthUser(trim($values['nhi']));
if ($healthUser->getNHI() == trim($values['nhi']) &&
$healthUser->getName() != trim($values['name'])){
//Also loop through all fields and show differences
foreach (array('suite','hnr_street','suburb','city','postcode','postal_address')
as $field){
if ($value[$field] != $healthUser->getFieldName()){
//How do I get the field name from $field?--^^^^^^^^^^
$errorSchemaLocal->addError(new sfValidatorError($this,
'fieldIsDifferent', $healthUser->getFieldName()),
$field);
}
}
SO基本的に私は$フィールドにフィールド名からgetter関数を作成する必要があります。
どうすればいいですか?
クール:
ます。また、ゲッターの名前を構築するためにsfInflectorを使用することができます!私はsfInflectorCammelize関数について知らなかった。確かに非常に便利です。ありがとう。 – Flukey
ArrayAccessは私にとっては機能しません - このバージョンは特定ですか?さもなければ、インフレクター機能の使用に満足してください。 – jdog
いいえ、それは特別なことではありません。これはしばしばドキュメントのモデルに対処する標準的な方法です:http://www.doctrine-project.org/projects/orm/1.2/docs/manual/working-with-models/en#dealing-with-relations:creating関連レコード –