在Symfony2中,我使用自定义约束来验证表单上的某些数据,但我想知道是否可以从表单中引入一个值来验证其他值?
这是我的约束......
<?php
// src\BizTV\ContainerManagementBundle\Validator\Constraints\ContainerExists.php
namespace BizTV\ContainerManagementBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
/**
* @Annotation
*/
class ContainerExists extends Constraint
{
public $message = 'Namnet är upptaget, vänligen välj ett annat.';
public function validatedBy()
{
return 'containerExists';
}
}
Run Code Online (Sandbox Code Playgroud)
我的验证员......
<?php
// src\BizTV\ContainerManagementBundle\Validator\Constraints\ContainerExistsValidator.php
namespace BizTV\ContainerManagementBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\DependencyInjection\ContainerInterface as Container;
use Doctrine\ORM\EntityManager as EntityManager;
class ContainerExistsValidator extends ConstraintValidator
{
private $container;
private $em;
public function __construct(Container $container, EntityManager $em) {
$this->container = $container;
$this->em = $em;
}
public function isValid($value, …Run Code Online (Sandbox Code Playgroud) 我有一个自联接表,其中每个文件夹都有一个父项,其深度是无限的.一个文件夹可以将另一个文件夹作为父文件夹,对深度没有限制.
今天我的代码看起来像这样,我正在寻找一种尽可能深入挖掘的方法而不需要对每一步进行硬编码,是否有一种方法可以定义带有循环的twig函数,每次循环调用自身在循环?
<select id='parent' name='container'>
<option value='none'>No parent</option>
{% for folder in folders %}
<option value='{{ folder.id }}'>{{ folder.name }}</option>
{% for folder in folder.children %}
<option value='{{ folder.id }}'> {{ folder.name }}</option>
{% endfor %}
{% endfor %}
</select>
Run Code Online (Sandbox Code Playgroud) 我在几台机器上维护了我的symfony2项目的工作副本,在不同的时间处理它们,在我开始工作之前总是拉动最新的dev分支.
现在,我在gitignore中拥有整个供应商目录,因为我相信应该这样做.但是当我在新的开发机器上安装我的应用程序时,它有时会收到一些供应商库的更新版本,因为我不会在每台机器上定期更新我的供应商.
我相信这会导致每台机器上的bootstrap.php.cache略有不同,那么我应该将该文件放在gitignore中吗?
如何在多个条件下执行此 findOne 查询?或者替代方法(最好是同样简单的方法),如果不可能的话......
User.findOne({ 'email': email }, function (err, user) {
if (err) {
request.session.flash = {
type: "danger",
message: "Failed to log you in, error occurred."
};
response.redirect("/snippet/");
}
Run Code Online (Sandbox Code Playgroud)
我试过了
User.findOne({ 'email': email, 'pwd': pwd }, function (err, user) {
Run Code Online (Sandbox Code Playgroud)
和
User.findOne({ 'email': email $and 'pwd': pwd }, function (err, user) {
Run Code Online (Sandbox Code Playgroud)
和
User.findOne({ 'email': email}, $and: {'pwd': pwd}, function (err, user) {
Run Code Online (Sandbox Code Playgroud) 我为Symfony 2.8项目更新了我的供应商,突然登录页面没有加载 - 而是我得到了这个:
错误:在第184行的vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php中的非对象上调用成员函数has()
"name": "hazardlog",
"license": "proprietary",
"type": "project",
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
"repositories": [
{
"type": "package",
"package": {
"name": "jquery/jquery",
"version": "1.11.1",
"dist": {
"url": "https://code.jquery.com/jquery-1.11.1.js",
"type": "file"
}
}
}
],
"require": {
"php": ">=5.3.9",
"symfony/symfony": "2.8.*",
"doctrine/orm": "^2.4.8",
"doctrine/doctrine-bundle": "~1.4",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~5.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"braincrafted/bootstrap-bundle": "~2.0",
"twbs/bootstrap": "3.0.*",
"jquery/jquery": "1.11.*",
"hwi/oauth-bundle": "^0.5.0",
"friendsofsymfony/user-bundle": "~2.0@dev",
"stephanecollot/datetimepicker-bundle": "dev-master"
},
"require-dev": { …Run Code Online (Sandbox Code Playgroud) 你如何用"with"上的几个参数做到这一点?
我想让这个工作......
控制器:
public function BeforeSlideAction($template,$order) {
Run Code Online (Sandbox Code Playgroud)
枝条:
{% render "BizTVScreenDisplayBundle:Default:BeforeSlide" with { 'template': c.template.id, 'order': i } %}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,说arg2($ order)丢失了......
如何使用usort对symfony2控制器内的关联数组进行排序?
//sort
function compare($a, $b)
{
return strnatcmp($a['sort'], $b['sort']);
}
usort($content, 'compare');
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
警告:usort()期望参数2是有效的回调,函数'compare'未找到或函数名称无效
就像把它放在像这样的私有函数中一样
// sort
usort($content, '$this->compare');
return $content;
}
//sort
private function compare($a, $b)
{
return strnatcmp($a['sort'], $b['sort']);
}
Run Code Online (Sandbox Code Playgroud)
这没有变化
// sort
usort($content, 'compare');
return $content;
}
//sort
private function compare($a, $b)
{
return strnatcmp($a['sort'], $b['sort']);
}
Run Code Online (Sandbox Code Playgroud) 是否可以动态生成html5缓存清单?我已经尝试过php(遵循本教程以及其他http://grinninggecko.com/dynamic-cache-manifest/)但没有成功.
本质上我想回滚本地存储库中的两个提交。尚未将任何内容推送到远程。
因此,在我的 GIT 存储库中,我不小心在提交 (A) 中添加了一个巨大的 zip 文件。我意识到了这一点,使用 finder 删除了 zip 文件并进行了另一次提交 (B)。
但现在我意识到,如果我将其推送到远程,它将包括整个 zip 文件......
为了让事情变得更复杂,我还在第一次提交 (A) 中对几个文件进行了一系列重要的更改,我不想丢失这些更改。
在推送到远程之前,如何从历史记录中删除该 zip 文件?我是否可以恢复到这两次提交之前的文件状态,而不会丢失在其他几个文件中所做的所有更改?
我有许多链接(A 元素)样式为“btn”类的按钮,当单击其中一个按钮时,我希望禁用该特定按钮。此代码不起作用:
$('.btn').on('click', function(e) {
$(this).prop('disabled',true);
});
Run Code Online (Sandbox Code Playgroud)
有很多教程可以防止表单提交按钮的默认事件,然后禁用它,但这并不是我所需要的......
显然,我$this没有指向正确的对象,或者什么=)
- - - - - - 更新 - - - - - - - -
对不起,更新上面。我拥有的元素不是按钮,而是样式为按钮的链接...