我有一个用户注册表(管理员使用),我想包括角色的选择.我在buildForm函数中使用以下代码成功添加了一个角色下拉列表:
$builder
->add('roles', 'collection', array(
'type' => 'choice',
'options' => array(
'choices' => array(
'ROLE_CONTENT' => 'Innehåll',
'ROLE_LAYOUT' => 'Skärmlayout',
'ROLE_VIDEO' => 'Videouppladdning',
'ROLE_ADMIN' => 'Administratör',
),
),
));
Run Code Online (Sandbox Code Playgroud)
现在,我想这是一个multichoice或复选框,而不是一个下拉列表,但我似乎无法找到一种方法,似乎是一个再简单不过的事还是我失去了一些有关如何此字段类型的作品,可以它不需要多种选择?
我试图在symfony2表单中验证未绑定的字段.
我用Google搜索并发现了几个类似的解决方案,所以我做了一个复制粘贴并将自己的东西放在那里,但它对我不起作用.可能有一个使用声明或者我读过的所有解决方案中都缺少的东西,因为每个人都知道它们是必要的,因此被省略了.除了这里的菜鸟.
我的代码:
<?php
namespace BizTV\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Validator\Constraints\CallbackValidator as CallbackValidator;
use Symfony\Component\Form\FormValidatorInterface;
use Doctrine\ORM\EntityRepository;
class newServerType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('company', 'entity', array(
'label' => 'Vilket företag tillhör servern? ',
'multiple' => FALSE,
'expanded' => FALSE,
'property' => 'companyName',
'class' => 'BizTV\BackendBundle\Entity\company',
));
$builder->add('screenName', null, array('property_path' => false, 'label' => 'Namn på skärmen (användaren kan ändra det senare) '));
$builder-> addValidator(new CallbackValidator(function(FormInterface $form){
$screenName = $form['screenName'];
if (empty($screenName)) { …Run Code Online (Sandbox Code Playgroud) <div id="firstDiv" style="width:1000px;height:600px;">
<div id="secondDiv" style="width:200px;height:200px;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
两个DIV都有click()事件.当我单击secondDiv时,firstDiv的click事件也被触发(我猜这是逻辑,因为我也点击了firstDiv的边框内).然而,我只想点击DIV的点击事件,实际上我点击了鼠标.
我怎么能做到这一点?
我有这个代码
$(textObject).children().each(function() {
$(this).removeAttr('style');
console.log('removing style from first level element: '+this);
});
Run Code Online (Sandbox Code Playgroud)
但是我希望它也影响所有嵌套元素,这个只会影响第一级子元素.我也试过了
$(this).children().removeAttr('style');
Run Code Online (Sandbox Code Playgroud)
哪个不起作用.
我也试过了
$(this).children().css('font-size','');
Run Code Online (Sandbox Code Playgroud)
这也不起作用.
很明显我想要完成的事情.
有没有一种很好的方法来删除所有SPAN标签(同时保留其中的文本)并用BR替换所有DIV和P?使用jQuery?
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum tincidunt urna ac dignissim. Phasellus nisi ante, pharetra at
<span> lorem a, condimentum ullamcorper</span>
<span> leo. Duis pharetra nulla sit amet dui feugiat luctus.</span>
</p>
<p>
<span>Ut eget nulla pulvinar ligula tincidunt placerat ut in eros. Cras posuere eget lacus eu lacinia. Cras lacinia porta porta. In hac habitasse platea dictumst. Maecenas nibh ligula, vulputate ut suscipit congue, euismod sed nunc. Cras quis rhoncus justo, sit amet vulputate enim.</span>
</p> …Run Code Online (Sandbox Code Playgroud) Symfony2和FOS用户包问题......
我已经在页面的头部实现了我自己的登录表单(根据http://forum.symfony-project.org/viewtopic.php?f=31&t=37767中的说明使用FOS用户包.)
现在,我有错误消息
Variable "csrf_token" does not exist in ::base.html.twig
Run Code Online (Sandbox Code Playgroud)
该论坛上的其他人(上面的网址)有完全相同的问题,并通过放入隐藏的csrf字段来解决它
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
Run Code Online (Sandbox Code Playgroud)
我的问题是:在/登录路径上工作正常,但我的要点是不需要单独的登录页面,我希望我的表单始终集成在页面头中,似乎只有{{csrf_token}}页面由登录控制器呈现时可用...
另外,我如何在那里得到错误消息(闪烁),我假设我必须以某种方式在我的defaultController中包含登录控制器,每次都用它来获取所有这些变量,或者......?或者我应该在标题的该部分中呈现userBundle控制器而不是将一些userBundle模板粘贴到我的脑海中?
我试图将htmlpurifier集成到symfony2控制器中,但是symfony2假设我试图实例化的类是那个不同的控制器的一部分,但它不是,它是一个包含类类型frmo htmlpurifier库.
有没有办法逃避类名,以便symfony2不在当前命名空间中查找它?
在 Symfony 5.4 之前,我曾经这样引用我的实体
public function findAction($archived = false)
{
$em = $this->getDoctrine()->getManager();
$analyses = $em->getRepository('App:Hazardlog\Analysis')->findAll();
Run Code Online (Sandbox Code Playgroud)
我记得不久前有一个以 ::class 结尾的新语法(可能已经在 symfony 4 中),但我一直坚持这种语法,因为我将我的实体组织到子文件夹中(这是旧时代的残余) src 中的代码应该驻留在一堆包中......)。
然而,现在我得到的只是一个简洁的错误:
类“Analysis::class”不存在
这是我的目录结构
Entity
Hazardlog
Analysis
Risk
Run Code Online (Sandbox Code Playgroud)
现在,我尝试了多种方法来在末尾使用 ::class 引用我的实体,但似乎都不起作用。
我可以不将我的目录保留在 symfony 5.4 中吗?还是有一种我没有找到的方法?
我试过了
$analyses = $em->getRepository('App:Hazardlog\Analysis::class')->findAll();
Run Code Online (Sandbox Code Playgroud)
也尝试过
$analyses = $em->getRepository('Hazardlog\Analysis::class')->findAll();
Run Code Online (Sandbox Code Playgroud)
也
$analyses = $em->getRepository('Analysis::class')->findAll();
Run Code Online (Sandbox Code Playgroud)
(我知道最后一个是一个远景,但由于应用程序中只有一个 Analysis 实体,并且 symfony 设置为新语法,我认为 symfony 可能足够聪明,无论如何都能找到它)
这里有什么提示给我吗?
- - - - - - - - - 更新 - - - - - - - -
从 Cerad 的评论中我学到了一些行不通的方法
$analyses …Run Code Online (Sandbox Code Playgroud) 我已经阅读了一些解决方案,其中没有一个是无忧无虑的,所以我想现在可能有一些现代解决方案可以解决这个问题.无论如何,它应该存在一段时间了.最近的jQuery更新中的某些内容是什么?
我像这样设置我的表单字段:
parent.window.document.getElementById(parent.window.imageInputField).value = '{{ path }}'+image;
Run Code Online (Sandbox Code Playgroud)
我有一个像这样的onchange事件,我想在上面的字段更新中触发.
$('#data_1').change(function(){
img = "url(" + $('#data_1').val() + ")"
$('#slide_bg').css("backgroundImage", img );
});
Run Code Online (Sandbox Code Playgroud)
UPDATE
所以这段代码工作正常:
alert( $('#'+parent.window.imageInputField, window.parent.document).val() );
Run Code Online (Sandbox Code Playgroud)
虽然这没有做任何事情,没有错误或没有
$('#'+parent.window.imageInputField, window.parent.document).change();
Run Code Online (Sandbox Code Playgroud)
更改事件在此处定义
$('#data_1').change(function(){
alert('change event called');
img = "url(" + $('#data_1').val() + ")"
$('#slide_bg').css("backgroundImage", img );
});
Run Code Online (Sandbox Code Playgroud)
这很完美:
<input type='button' value='Uppdatera förhandsgr.' onclick="$('#data_1').change()" />
Run Code Online (Sandbox Code Playgroud)
我想要的只是触发这个按钮的功能,但是通过代码...任何人都能看到我哪里出错了?
当使用phpqrcode时,有没有办法使生成的二维码的背景透明?
我正在将PNG生成到磁盘。
我发现了这一点,但我认为它已经过时了:
该论坛建议的行是
ImageColorTransparent($target_image, $col);
Run Code Online (Sandbox Code Playgroud)
但是,对于它是否打算与当前版本的代码一起使用,我还是不清楚。
<?php
/*
* PHP QR Code encoder
*
* Image output of code using GD2
*
* PHP QR Code is distributed under LGPL 3
* Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* …Run Code Online (Sandbox Code Playgroud) <div id="slide2" class="slide" style="z-index:2;">
<div style="display:none; z-index:1;position:absolute; bottom:10px;right:10px;padding:20px; background:#fff;border:solid 1px black;border-radius:15px;box-shadow: 4px 4px 3px #888888;" class="rss_qrcode"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
这有效:
$('.rss_qrcode').css('display', 'block');
Run Code Online (Sandbox Code Playgroud)
这不起作用:
$('#slide2.rss_qrcode').css('display', 'block');
Run Code Online (Sandbox Code Playgroud)
我需要能够仅使用 #slide2 div 中的 rss_qrcode 类来操作 div...
我也尝试过
$('#slide2')find('.rss_qrcode').css('display', 'block');
Run Code Online (Sandbox Code Playgroud)
也没用=(