- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有三个这样的实体:
-可用团队(由管理员管理)
-Player-PreConfig(由管理员管理)
-Player-Self](由用户管理(玩家本身)) 可用团队:
--> 所有可用的团队
播放器预配置:
--> 管理员可以在这里预先选择允许玩家参加比赛的球队。 (First-Filter - Many2Many: Available-Teams<->Player-PreConfig) - View 中有很多复选框。
玩家 self :
--> 在这里玩家应该能够选择他想参加的球队(多个)。但是他不应该列出所有可能的可用球队,而应该只列出剩余的球队。
类
/**
* TeamsPlayerBundle\Entity\Teams
*
* @ORM\Table(name="team")
* @ORM\Entity
*/
class Team
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $name
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @ORM\ManyToMany(targetEntity="PreConfig", mappedBy="teams", cascade={"persist", "remove"})
**/
private $configs;
/**
* @ORM\ManyToMany(targetEntity="Player", mappedBy="teams2show", cascade={"persist"})
**/
private $players;
public function __construct()
{
$this->configs = new ArrayCollection();
$this->players = new ArrayCollection();
}
(... setters and getters)
###################################################
/**
* TeamsPlayerBundle\Entity\PreConfig
*
* @ORM\Table(name="preconfig")
* @ORM\Entity
*/
class PreConfig
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToMany(targetEntity="Teams", inversedBy="configs", cascade={"persist", "remove"})
* @ORM\JoinTable(name="preconfig_teams)
**/
private $teams;
public function __construct()
{
$this->teams = new ArrayCollection();
}
(... setters and getters)
####################################################
/**
* TeamsPlayerBundle\Entity\Player
*
*
* @ORM\Table(name="player")
* @ORM\Entity
*/
class Player
{
/**
* @var integer $player_id
*
* @ORM\Column(name="player_id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $player_id;
/**
* @var string $name
* @Assert\NotBlank
*
* @ORM\Column(name="name", type="string", length=64)
*/
private $name
/**
* @ORM\ManyToMany(targetEntity="Team", inversedBy="player", cascade={"persist"})
* @ORM\JoinTable(name="player_team",
* joinColumns={@ORM\JoinColumn(name="player_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="id", referencedColumnName="id")}
* )
**/
private $teams2show;
public function __construct()
{
$this->teams2show = new ArrayCollection();
}
(... setters and getters)
现在我有这个 FormType:我尝试按照“Viktor77”的建议用 Query_Builder 解决
namespace TeamsPlayerBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Doctrine\ORM\EntityRepository;
use TeamsPlayerBundle\Entity\Player;
class Teams2ShowType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('teams2show', 'entity', array(
'class' => 'TeamsPlayerBundle\Entity\PreConfig',
'query_builder' => function(EntityRepository $er) use ($cid) {
return $er->createQueryBuilder('c')
->add('orderBy', 'c.name ASC')
->innerJoin('c.teams', 'c2')
->where('c2.id = :configId')
->setParameter('configId', $cid);
},
'expanded' => true,
'multiple' => true,
'property_path' => 'teams2show',
'property' => 'name'
))
;
...<br />
供您引用:=> 我的第一个表格如下所示:
class Teams2ShowType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('teams2show', 'entity', array(
'multiple' => true,
'expanded' => true,
问题如下:
如果我现在呈现表单,一切正常,但会呈现大量复选框。呈现整个实体。
当然,因为我不知道如何根据多对多关系 Available-Teams<->Player-PreConfig 只填充剩余的实体。
因为很明显,我的实际 Teams2ShowType 不知道应该只显示其余的团队。
我已经尝试了很多,也阅读了很多(query_builder、model transformer 等),但我还是做不好。
我的真实示例(在公司中)必须对许可方和合作伙伴配置做一些事情,但我想在更容易理解的场景中提出这个问题。
我不知道关于如何实现此权利的任何最佳实践。
非常感谢您的提前帮助,我已经尝试解决该问题超过 3-4 天。
亲切的问候,
最佳答案
query_builder 选项是要走的路。只需使用 Doctrine Query Builder API 即可仅获取您需要在表单中呈现的实体,而不是所有实体
关于mysql - 如何根据不相关的关系过滤 Symfony 表单实体输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33020247/
我有这张图: digraph G { 1 [label="car"]; 2 [label="x"]; 3 [label="car"]; 4 [label="y"]; 5 [label="cdr"];
我有一个大型查询,其中一个简单的子查询优化将其从 8 分钟缩短到 20 秒。我不确定我是否理解为什么优化会产生如此巨大的效果。 本质上,这是问题部分: SELECT (bunch of stuff)
我在 NetBeans IDE 6.9.1 和 GlassFish 3 中遇到非常奇怪的问题。在使用 64 位 JDK 在 Windows 7 上安装 NetBeans 后,在没有创建任何项目的情况下
我有两个长度相同的数组。第一个数组是静态的,具有这种格式的数据 a = [['q', 10], ['s', 20], ['z', 40], ['d', 15]] 和另一个数组 b = [1, 0, 0
我在下面的代码中有一个编译错误。编译器似乎将类方法 set 解释为一个模板,乍一看,它与我的代码完全无关。 #include #include using namespace std; templ
我有一个完整的 Canvas CCLayer,上面有几个小的 CCLayer - 它们是按钮。在按钮上我启用了触摸监听器: - (id)init { if ((self = [super init
关于 this page ,当您将鼠标悬停在右上角的红色标记上时,css3 变换会旋转图像。这按预期工作,但 div.last.half 短暂地向右单击并返回到它的原始位置。 这仅出现在 Chrome
我目前正在重新设计我的网站以包含两栏。左栏是带有一些链接和文本的侧边栏,右栏是页面的正文(不是 )。我遇到的问题是页面上两个完全独立的元素的 CSS 规则会影响这两个元素。 因为这可能没有意义,这是
这是问题 here 的跟进关于使用参数依赖查找 (ADL) 的函数重载。我想检查一下我在这种情况下对规则的理解,所以我写了一些测试代码。 首先,在 std 中当然没有 HasPtr 类的交换,所以我写
我是 Developer Portal 中两个开发团队的成员。一个团队不再存在,也不再由团队的“代理”维护。 现在这就是我的问题。我正在尝试在 Xcode 中刷新我的配置文件,但不断收到一条消息,告诉
在调试问题时,我注意到在改变方向时,viewDidLoad不相关的UIViewController正在被调用。 它似乎与我的问题无关,但这完全很奇怪。 这个UIViewController只能从 UI
今晚,当我拖放一个早上运行良好的项目时,我继续收到数千个这样的错误。我有 140 个类,我无法跟踪我所做的所有修改:(。但我从未更改过与拖/放功能相关的任何内容。我已经完全远离了代码中引发这些问题的行
我的网页布局有一个奇怪的行为。当我在“sideBar”div 中添加更多 div 时,网页的中心部分被下推。它们与中心部分无关。他们有边界,我看到他们离“主要”分区很远。有什么办法可以防止它,或者我每
我们有 3 个独立的 git 存储库(每个都有一些分支),我们想将它们 merge 为一个保留完整历史记录和访问分支的能力,如下所示: 这就是我们所拥有的。 3 个 repo : /A/.git /B
我意识到“为什么会这样”的问题通常不是最好的问题,但是 SO 上有很多人关注标准委员会的讨论,所以我希望可以如实回答,因为我很好奇至于答案是什么。 基本上,当我第一次看到 std::result_of
我已经设法使 SqlDependency 正常工作,但前提是我不在我认为与 SqlDependency 无关的 SQL 事务中使用 IsolationLevel.ReadUncommited。 当我在
我一直在尝试使用反射动态设置字段。当谈到泛型类时,有一个障碍。考虑这段代码: 包装器.java: public class Wrapper { private T var; publi
我是一名优秀的程序员,十分优秀!