Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 生成问题_Php_Symfony1_Doctrine - Fatal编程技术网

Php 生成问题

Php 生成问题,php,symfony1,doctrine,Php,Symfony1,Doctrine,我试图生成一个url,但我一直收到一个奇怪的警告,即使它工作。我正在创建一个api xml页面,并在控制器中使用以下调用: public function executeList(sfWebRequest $request) { $this->users = array(); foreach($this->getRoute()->getObjects() as $user) { $this->users[$this->gene

我试图生成一个url,但我一直收到一个奇怪的警告,即使它工作。我正在创建一个api xml页面,并在控制器中使用以下调用:

public function executeList(sfWebRequest $request)
{
    $this->users = array();
    foreach($this->getRoute()->getObjects() as $user)
    {
        $this->users[$this->generateUrl('user_show', $user, true)] = $user->asArray($request->getHost());
    }
}
用户展示路线如下所示:

# api urls
user_show:
  url:   /user/:nickname
  param: { module: user, action: show }
<br />
<b>Warning</b>:  array_diff_key() [<a href='function.array-diff-key'>function.array-diff-key</a>]: Argument #1 is not an array in <b>/opt/local/lib/php/symfony/routing/sfRoute.class.php</b> on line <b>253</b><br />
<br />
<b>Warning</b>:  array_diff_key() [<a href='function.array-diff-key'>function.array-diff-key</a>]: Argument #1 is not an array in <b>/opt/local/lib/php/symfony/routing/sfRoute.class.php</b> on line <b>253</b><br />

<br />
<b>Warning</b>:  array_diff_key() [<a href='function.array-diff-key'>function.array-diff-key</a>]: Argument #1 is not an array in <b>/opt/local/lib/php/symfony/routing/sfRoute.class.php</b> on line <b>253</b><br />
<?xml version="1.0" encoding="utf-8"?>
<users>
  <user url="http://krowdd.dev/frontend_dev.php/user/danny">
    <name>Danny tz</name>
    <nickname>danny</nickname>
    <email>comedy9@gmail.com</email>
    <image></image>
  </user>
  <user url="http://krowdd.dev/frontend_dev.php/user/adrian">
    <name>Adrian Sooian</name>
    <nickname>adrian</nickname>
  </user>
</users>
xml输出如下所示:

# api urls
user_show:
  url:   /user/:nickname
  param: { module: user, action: show }
<br />
<b>Warning</b>:  array_diff_key() [<a href='function.array-diff-key'>function.array-diff-key</a>]: Argument #1 is not an array in <b>/opt/local/lib/php/symfony/routing/sfRoute.class.php</b> on line <b>253</b><br />
<br />
<b>Warning</b>:  array_diff_key() [<a href='function.array-diff-key'>function.array-diff-key</a>]: Argument #1 is not an array in <b>/opt/local/lib/php/symfony/routing/sfRoute.class.php</b> on line <b>253</b><br />

<br />
<b>Warning</b>:  array_diff_key() [<a href='function.array-diff-key'>function.array-diff-key</a>]: Argument #1 is not an array in <b>/opt/local/lib/php/symfony/routing/sfRoute.class.php</b> on line <b>253</b><br />
<?xml version="1.0" encoding="utf-8"?>
<users>
  <user url="http://krowdd.dev/frontend_dev.php/user/danny">
    <name>Danny tz</name>
    <nickname>danny</nickname>
    <email>comedy9@gmail.com</email>
    <image></image>
  </user>
  <user url="http://krowdd.dev/frontend_dev.php/user/adrian">
    <name>Adrian Sooian</name>
    <nickname>adrian</nickname>
  </user>
</users>

警告:array_diff_key()[]:参数#1不是第253行/opt/local/lib/php/symfony/routing/sfRoute.class.php中的数组

警告:array_diff_key()[]:参数#1不是第253行/opt/local/lib/php/symfony/routing/sfRoute.class.php中的数组

警告:array_diff_key()[]:参数#1不是第253行/opt/local/lib/php/symfony/routing/sfRoute.class.php中的数组
丹尼茨 丹尼 comedy9@gmail.com 阿德里安·苏安 阿德里安
因此,它输出正确的xml,但我不知道为什么它在调用generateurl方法时抛出thows警告


谢谢

嗯,警告非常具体,函数
array\u diff\u key
期望数组作为第一个参数,但它没有得到一个

我不知道symfony,但是您可以看到错误,它发生在文件symfony/routing/sfRoute.class.php的第253行

因此,您正在调用某个函数,该函数正在调用该文件上的那一行


我认为您可以使用来跟踪代码流,并尝试查找是否插入了应为数组但不是数组的变量。

这是generateUrl的签名:

public function generateUrl($route, $params = array(), $absolute = false)
请特别注意第二个参数。对于常规路由,它应该是一个数组,但是:如果您的路由是SFPROPERROUTE或其等效原则,则它可以是一个对象。

我相信您会出现这些错误,因为该路线未定义为SFPROPERROUTE(或条令)。

谢谢,在遇到此问题之前,我不知道如何打开“绝对”。