我不知道为什么我没有在我的控制器中捕获Swiftmailer的异常.我做错了什么,或者错过了什么?
在控制器中我有:
try {
$this->get('mailer')->send($email);
}
catch (\Swift_TransportException $e) {
$result = array(
false,
'There was a problem sending email: ' . $e->getMessage()
);
}
Run Code Online (Sandbox Code Playgroud)
在它到达我的代码之前它似乎被Symfony抓住了,所以我没有能够自己处理错误,而是获得标准的500页
Swift_TransportException: Connection could not be established
如果无法发送电子邮件,则不需要暂停应用程序,因为电子邮件并不重要 - 我只是想发出通知.
也许有办法禁用Symfonys捕获某些异常或某些控制器?
我有一个公司实体,其中每个公司在分层树结构中有另一个母公司.
应用程序中的一切正常,所以我确定我的实体类是正确的.
问题是,如果数据库中已有内容,那么就这样做了
doctrine:fixtures:load
Run Code Online (Sandbox Code Playgroud)
给出了这个错误:
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)
我相当确定问题是load:fixtures必须截断表,但它不能得到这个错误.
我不知道如何解决这个问题,而不在黑客攻击Doctrine之前禁用关键约束.这不是一个长期的解决方案.
数据结构中的其他关系不会导致问题,因为学说似乎以正确的顺序清除以避免问题,但是公司表是自我引用的,它会失败.
这是我的实体.
class Company
{
/**
* @var integer $id
*
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string $name
* @ORM\Column(type="string", length=100)
*/
protected $name;
/**
* @ORM\ManyToOne(targetEntity="Company", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
*/
protected $parent;
/* other properties here..... */
}
Run Code Online (Sandbox Code Playgroud)
我使用Symfony 2.0.7和最新的deps,以及MySQL 5.5
我有一个数据结构,其中一个主题有很多问题(一对多),一个问题有很多答案(一对多).
我已经将问题设置为主题形式的嵌入式集合,并且由于菜谱条目的原因,我已经完成了100%的工作.
当我尝试开发这个以在问题表单中嵌入答案表单的集合时,我遇到了问题.
包含顶级原型表单的data-prototype属性在其中具有完整的表单深度,因此包括问题和答案的原型.但它__name__为每个级别使用相同的占位符.
<div id="topic_questions___name__">
<div class="control-group">
<label for="topic_questions___name___questionText" class="control-label">question</label>
<div class="form-row-errors"></div>
<div class="controls">
<textarea id="topic_questions___name___questionText" name="topic[questions][__name__][questionText]" required="required" class="input-block-level"></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">answers</label>
<div class="controls">
<div id="topic_questions___name___answers" data-prototype="<div class="control-group"><label class="control-label">__name__label__</label><div class="controls"><div id="topic_questions___name___answers___name__"><div class="control-group"><label for="topic_questions___name___answers___name___answerText" class="control-label">option</label><div class="form-row-errors"></div><div class="controls"><input type="text" id="topic_questions___name___answers___name___answerText" name="topic[questions][__name__][answers][__name__][answerText]" required="required" maxlength="255" /></div></div><input type="hidden" id="topic_questions___name___answers___name___sortOrder" name="topic[questions][__name__][answers][__name__][sortOrder]" /></div></div></div>"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
您可以在底部看到真正的长行,我猜这是答案形式的原型 - 原型(!).我无法看到只替换问题相关的[__name__]占位符而不是答案相关的占位符.
做得很正常
var newForm = prototype.replace(/__name__/g, collectionHolder.children().length);
Run Code Online (Sandbox Code Playgroud)
当创建问题表单的实际实例时,当然会替换__name__具有相同值的所有实例,因此当为"答案"表单创建数据原型时,它已经替换了所有占位符.
当我点击添加一个真实的问题表单时,这就是数据原型在答案表单中的样子
<div class="control-group">
<label class="control-label">1label__</label>
<div class="controls">
<div id="topic_questions_1_answers_1">
<div …Run Code Online (Sandbox Code Playgroud) 如果我有一个扩展类 Bar 的类 Foo 和一个 Bar 的实例,那么是否可以使用该 Bar 实例来“填充”一个新的 Foo 实例?
本质上,我只能检索 Bar,但我想在我的代码中使用 Foo,因为它为我提供了许多其他方法。
我看到很多解决方案都提出了类似的问题,但它们似乎都是 python 或 c#。
我无法使用 ReflectionClass::newInstanceArgs,因为我无法访问进入 Bar 构造函数的数据以首先创建它。
我有一个PHP脚本,可以执行2到10分钟的任何时间.它从网络上获取信息,因此它的时间取决于许多其他事情的谈话速度.
我曾经每15分钟在一个cron上运行脚本,但有时它只需要2分钟就可以运行.
所以我想知道我是否可以以某种方式使它永久运行 - 一旦完成任务就将自己重新设置?这样,无论多长时间,它都会立即开始.
当我在一个私人项目上寻找bug并将它们推送到远程源(我自己的私人vps)时,我向Master分支做了5次提交.
然后我看到提交4和5将在其他地方引起麻烦,我需要撤消它们,所以我再次检查提交3,从那一点做了一个新的分支"Dev",并做了一些提交正确解决问题.
然后我做了
git reset - hard HEAD~2在Master上把它拉回到我分支开发的那一点.
然后我做了git merge to fast forward Master回到Dev分支的末尾.
所以现在我有一个本地存储库,Dev和Master都指向同一个最新版本的项目,并带有最新的bug修复.
问题是,当我尝试将项目现在推送到原点时,它会失败并给出一条错误消息:
![拒绝]主 - >主(非快进)错误:未能将某些引用推送到'myserver ... myproject.git'
我做错了什么,我该如何解决?
谢谢
我有两张桌子
User
id
name
Result
id
user_id
score
created_at
Run Code Online (Sandbox Code Playgroud)
每小时一个cron作业运行并将数据放入每个用户的结果表中 - 根据一些外部变量参数为它们分配一个分数.
因此,Result表包含每个用户的许多记录.
我想在任何给定的点上回顾"前十名"用户.因此,每个用户只应返回一行,并且应该包含最近的可用分数,理想情况下,只有10行与这些分数最高的用户相关.
我目前正在获取所有结果,并使用php进行腿部工作,如果由数据库处理,我相当肯定会更快更高效.但我不知道从哪里开始.
php ×3
symfony ×3
cron ×1
doctrine-orm ×1
foreign-keys ×1
git ×1
join ×1
mysql ×1
push ×1
swiftmailer ×1