小编use*_*418的帖子

如何在Symfony2 Doctrine中使用级联选项?

我试图理解Symfony2cascadeDoctrine中的选项.

我希望能够删除子实体(而不是触发外键约束错误.)

我有3个实体:

报告

/**
* @ORM\OneToMany(targetEntity="Response", mappedBy="report")
*/
protected $responses;

/**
* @ORM\OneToMany(targetEntity="Response", mappedBy="report")
*/
protected $sms;
Run Code Online (Sandbox Code Playgroud)

响应

/**
 * @ORM\ManyToOne(targetEntity="Report", inversedBy="responses")
 */
protected $report;
Run Code Online (Sandbox Code Playgroud)

短信

/**
 * @ORM\ManyToOne(targetEntity="Report")
 */
protected $report;
Run Code Online (Sandbox Code Playgroud)

现在我想删除一个Response实体,但我得到了

SQLSTATE [23000]:完整性约束违规:1451无法删除或更新父行:
外键约束失败(mybundle.sms,CONSTRAINT FK_B0A93A77BB333E0DFOREIGN KEY(reportId)REFERENCES report(id))

我在哪里使用该cascade选项以及我应该使用哪个选项(detachremove)?

我可以做很多试验和错误来解决这个问题,但我希望得到专家的解释,所以我不会忽视某些事情.

doctrine cascade

15
推荐指数
2
解决办法
3万
查看次数

PHP扩展已安装但未加载

我正在尝试安装php的ssh2扩展,并且有点困难。该文件在那里,它只是没有加载到php中。

首先,我安装了ssh2:

 aptitude install libssh2-1-dev libssh2-php
Run Code Online (Sandbox Code Playgroud)

(对于它的价值,我在Nginx上运行Ubuntu 12.04。)

我可以看到ssh2是使用modules命令加载的:

php -m |grep ssh2
ssh2
Run Code Online (Sandbox Code Playgroud)

但是,当我运行代码时,出现未定义的函数错误。

在我的phpinfo()脚本中,我可以看到我的php安装程序在此目录中扫描了其他ini文件:/etc/php5/fpm/conf.d。列出该目录的内容,我可以看到我的ssh2.ini在那里:

ls /etc/php5/fpm/conf.d
mysqli.ini  mysql.ini  pdo.ini  pdo_mysql.ini  ssh2.ini  
Run Code Online (Sandbox Code Playgroud)

再次根据phpinfo,将加载其他四个ini文件。SSH2不是。

我还尝试将“ extension = ssh2.so”直接放置在我的php.ini文件-/etc/php5/fpm/php.ini中。是的-我已经重新启动了Nginx服务器。

我还有其他东西吗?

php ubuntu nginx libssh2

6
推荐指数
1
解决办法
1万
查看次数

在Symfony2中调试路由

我无法弄清楚我的Symfony2路由YML文件中的单个路由有什么问题.其他每条路线工作得很好(我已经有几十条了),但这条路线拒绝被识别.

这是我的YML文件的相关剪辑:

ProjectMainBundle_util_initUpload:
    pattern:  /util/initUpload
    defaults: { _controller: ProjectMainBundle:Utilities:initUpload }
    requirements:
        _method:  POST

ProjectMainBundle_util_init:
    pattern:  /util/init
    defaults: { _controller: ProjectMainBundle:Utilities:initUtilities }
    requirements:
        _method:  POST

ProjectMainBundle_util_download:
    pattern:  /util/download
    defaults: { _controller: ProjectMainBundle:Utilities:download }
    requirements:
        _method:  GET
Run Code Online (Sandbox Code Playgroud)

第一个路由'/ util/initUpload'返回' 找不到"POST/util/initUpload"错误的路由.我已经尝试将块放在不同的位置(甚至将它移到'/ util/init'上面.)'/'索引路径位于我的routing.yml文件的末尾,所以这不应该是问题.上面的路由是唯一的格式为/ util/*的路由.

该路由用于处理表单和文件上传,但我认为这不重要.我已经删除了POST要求并直接在浏览器中对其进行了测试,这仍然给了我同样的错误.. camelCase应该不是问题.我有其他格式的路线,工作得很好......

我还缺少什么?关于如何调试这个的任何建议?我的下一步是废弃YML文件并使用php格式重写,但我真的不想这样做..

routing symfony

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

cascade ×1

doctrine ×1

libssh2 ×1

nginx ×1

php ×1

routing ×1

symfony ×1

ubuntu ×1