我必须使用SoapClient对象调用SOAP Web服务.其中一个参数必须包含CDATA部分中包含的一些XML,如下所示:
<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation>
Run Code Online (Sandbox Code Playgroud)
注意节点命名空间,这是我痛苦的根源......
如果我创建一个字符串SoapVar,则XML被编码...
new SoapVar('<![CDATA[<foo><bar>baz</bar></foo>]]>', XSD_STRING, null, null, 'productInformation', self::MY_NAMESPACE)
<ns2:productInformation xsi:type="xsd:string"><![CDATA[<foo&t;<bar>baz</bar></foo>]]></ns2:productInformation>
Run Code Online (Sandbox Code Playgroud)
所以我不能这样做.我发现的唯一替代方法是使用XSD_ANYXML编码,如下所示:
new SoapVar('<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation>', XSD_ANYXML)
Run Code Online (Sandbox Code Playgroud)
它工作,但它很糟糕......看看硬编码的命名空间快捷方式("ns2").
那么你有想法创建一个包含XML的CDATA部分吗?
我有一个Symfony 2.1项目,通过composer安装了其他软件包.我想将它部署到我的生产服务器,但我想知道是否需要更改composer.json文件中的任何内容.这是我目前的文件内容:
{
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.1",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.0.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.1.*",
"symfony/monolog-bundle": "2.1.*",
"sensio/distribution-bundle": "2.1.*",
"sensio/framework-extra-bundle": "2.1.*",
"sensio/generator-bundle": "2.1.*",
"jms/security-extra-bundle": "1.2.*",
"jms/di-extra-bundle": "1.1.*",
"friendsofsymfony/user-bundle": "*",
"knplabs/knp-paginator-bundle": "dev-master",
"ornicar/gravatar-bundle": "dev-master",
"liip/url-auto-converter-bundle": "dev-master"
},
"scripts": {
"post-install-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
]
},
"config": {
"bin-dir": "bin"
}, …Run Code Online (Sandbox Code Playgroud) 我有一个包含2个字段的搜索表单,没有链接到实体.让我们说它是这样构建的:
$builder
->add('orderNumber', 'text', array('required' => false))
->add('customerNumber', 'text', array('required' => false))
;
Run Code Online (Sandbox Code Playgroud)
我希望用户必须填写两个字段中的至少一个.
使用Symfony 2.5实现这一目标的正确方法是什么?
编辑:可以在不添加数据类的情况下完成吗?
我想以这种方式呈现symfony表单:

我的问题涉及单选按钮小部件:我不知道如何单独呈现每个选项,以便在这些单选按钮之间显示其他字段.
有没有办法用symfony形式实现这一目标?
谢谢!
symfony ×2
composer-php ×1
php ×1
production ×1
soap ×1
soap-client ×1
symfony-1.4 ×1
symfony-2.1 ×1
symfony-2.5 ×1
symfony1 ×1
validation ×1