0

私が取り組んできた一連のフォーム(Zend_Formを使用)は、特定のINPUT要素に対して予期しないHTML出力を取得し続けたため、XML構成の何が問題になっているのかを理解しようとして頭痛の種を引き起こしていました。デフォルト値を取得するはずでしたが、何も表示されませんでした。

Zend_Formのインスタンス化に使用する場合、次の2つのXMLは等しくないようです。

スニペット#1:

<form>
  <elements>
    <test type="hidden">
      <options ignore="true" value="foo"/>
    </test>
  </elements>
</form>

スニペット#2:

<form>
  <elements>
    <test type="hidden">
      <options ignore="true">
        <value>foo</value>
      </options>
    </test>
  </elements>
</form>

要素のタイプは違いを生むようには見えないので、非表示のフィールドに関連しているようには見えません。

これは予想されるかどうか?

4

2 に答える 2

0

ここではかなり静かだったので、ソースコードとドキュメントをさらに調べました。

Zend_Config_Xmlの259行目で、SimpleXMLElementオブジェクト属性が文字列に変換され、次のようになります。

options Object of: SimpleXMLElement 
    @attributes Array [2]   
        label   (string:7) I can't see this because 
        value   (string:21) something happens to this

になる

options (string:21) something happens to this

そのため、ドキュメントを調べたところ、Zend_Config_XmlにロードされるXMLファイルで属性として使用された場合に「value」が予約済みのキーワードであることがわかりました。

例2Zend_Config_Xmlでのタグ属性の使用

"..Zend_Config_Xmlは、構成でノードを定義する2つの追加の方法もサポートします。どちらも属性を使用します。extends属性とvalue属性は予約済みキーワードであるため(後者は属性を使用する2番目の方法による)、使用できない場合があります。 ...」

したがって、ドキュメントによれば、それは「期待される」ように見えます。「値」がフォーム要素の属性であることを考えると、これが良いアイデアであることに完全に満足しているわけではありません。

于 2010-06-10T21:17:39.720 に答える
0

これについては心配しないでください。予約されたキーワードは独自の名前空間に移動され、以前の属性は削除されました。Zend Framework 2.0では、名前空間のない属性が削除されるため、それらを再度使用できます。

于 2010-08-22T01:37:33.747 に答える