小编her*_*h42的帖子

使用Symfony 2中的表单类设置默认值

我试图在Symfony 2.3中为文本字段定义默认值.该表单用于创建和更新实体.在编辑模式下,应使用数据库给出的值,而不是默认值(当然).

编辑 这似乎是一个常见问题,很多人看过这篇文章如何在Symfony2中设置表单字段的默认值?

然而答案并不令人满意(对我来说):

  • 使用data属性是"错误的",它将始终被使用,不仅在表单元素没有值时
  • 使用if - then - else方法使用data属性(虽然答案中的语法是错误的).我怀疑这是应该在Symfony中完成的方式.
  • 另一个建议是在模型中设置默认值,如"protected $ foo ='myValue'".这适用于某些字段类型(例如文本字段)但不是全部.
  • 使用EventListeners可能会起作用,但它的工作量非常大,以至于它无法成为此基本任务的预期方式
  • 如果您使用form_widget标记,则在树枝模板中设置它不起作用,如果您在不同模板中使用该表单,则必须多次设置它

所以我仍在寻找"完美"的方式,即Symfony开发人员提供的方式(必须有一个,这是一个基本要求).

这是我到目前为止,但它不起作用(表单中没有默认值).这是正确的方法吗?

// Acme\DemoBundle\Form\ProjectType.php
class ProjectType extends AbstractType
{

    public function __construct(array $options = array())
    {
        $resolver = new OptionsResolver();
        $this->setDefaultOptions($resolver);
        $this->options = $resolver->resolve($options);
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('color', 'text', array(
                "label" => "Color:"
            )
        );
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            "color" => "#0000FF"
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

php symfony-forms symfony symfony-2.3

24
推荐指数
0
解决办法
2万
查看次数

vuejs v-for每5个项目添加一个bootstrap行

我有一系列项目,如'项目1','项目2'到'项目25'.我希望渲染后的HTML看起来像这样:

<div class="row">
   <div>Item 1</div>
   <div>Item 2</div>
   <div>Item 3</div>
   <div>Item 4</div>
   <div>Item 5</div>
</div>
<div class="row">
   <div>Item 6</div>
   <div>Item 7</div>
   <div>Item 8</div>
   <div>Item 9</div>
   <div>Item 10</div>
</div>
Run Code Online (Sandbox Code Playgroud)

在vue.js中表达这个的正确方法是什么?

 <div class="row">
    <span  v-for="(item, index) in items">
         // do something like this in vue.js style: 
         // if (item % 5 == 0) print "</div><div class='row'>"
         <app-field >{{ item }}</app-field>
    </span>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript twitter-bootstrap vue.js

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

backbone.js和跨域脚本

我想使用backbone.js和jquery.该应用程序应该在手机上脱机运行(即"localhost"),在互联网的某个地方的服务器端后端几乎没有呼叫.

使用backbone.js实现跨域请求的最佳方法是什么?

我想使用JSON,但如果有必要,我最终可以切换回REST.

到目前为止,这是我不太令人印象深刻的代码:

App.Collections.Events = Backbone.Collection.extend({
   model: Event,    
   url: 'http://mydomain.com/api/getevents/user_id/1/'
});
Run Code Online (Sandbox Code Playgroud)

jquery cross-domain backbone.js

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

我在哪里存储Silex中的常规配置参数?

我有一些一般参数,我想在我的应用程序中共享,如路径信息("baseurl").您最好将这些信息存储在Silex中?

php configuration silex

9
推荐指数
1
解决办法
9310
查看次数

如何在没有--prefer-source的情况下使用Composer克隆存储库?(使用Symfony 2)

场景:我正在使用Symfony 2.2.在我的必需包列表中也是我的github存储库之一,我们称之为"TestLib".

我知道我可以将github url定义为Symfony的composer.json中的附加存储库,从Github通过Composer下载"TestLib".

问题:我无法提交"TestLib"存储库,因为"TestLib"目录中没有本地.git目录.我想作曲家正在从Github取一个拉链而不是克隆它.

所以我的问题是:有没有办法在Symfony的composer.json中指定Composer应该克隆TestLib?

问题2:也许我的工作流程是错误的 - 所以如果你也有这种情况 - 你如何处理这个?

php symfony composer-php

7
推荐指数
2
解决办法
3767
查看次数

将选项数组作为复选框列表添加到 Symfony 2 表单

我想做一些非常简单的事情(理论上;-)):

  1. 从数据库中选择选项列表
  2. 显示每个选项的复选框
  3. 为每个选定的选项做一些事情

我正在使用 Symfony 2.2.2。

这是我将列表动态添加到表单对象的方法:

// MyformType
public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $formFactory = $builder->getFormFactory();
        $builder->addEventListener(
            FormEvents::PRE_SET_DATA,
            function (\Symfony\Component\Form\FormEvent $event) use ($formFactory) {
                $options = $event->getData();
                $items = $options["items"];
                foreach ($items as $item) {
                    $event->getForm()->add(
                        $formFactory->createNamed($item->getId(), "checkbox", false, array(
                                'label'     => $item->getName()                                   
                            )
                        )
                    );
                }
            }
        );
    }

 public function getName()
 {
        return 'items';
 }
Run Code Online (Sandbox Code Playgroud)

Symfony 生成如下 HTML:

<input type="checkbox" id="items_17" name="items[17]" value="1">
<input type="checkbox" id="items_16" name="items[16]" value="1">
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试保存提交的数据时,我无法访问元素“items” - Symfony 抛出一个异常,表明子“items”不存在。

// controller …
Run Code Online (Sandbox Code Playgroud)

php forms symfony

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

Sqlalchemy:无法执行同步规则(在多对多关系中)

我正在 Sqlalchemy 中处理“多对多”关系。我的数据模型:

  • 一条链由一个或多个作业组成
  • 一项工作可能是一个或多个链的一部分
class Chain(Base):
    __tablename__ = "chain"
    __table_args__ = {'extend_existing': True}
    __guarded__ = ['id']
    id = Column(Integer, primary_key=True)
    name = Column(Text, nullable=False)
    # .. some other fields

class JobConfig(Base):
    __tablename__ = "jobconfiguration"
    __table_args__ = {'extend_existing': True}
    __guarded__ = ['id']
    chain = relationship("Chain",  secondary='chain_job')

    id = Column(Integer, primary_key=True)
    jobname = Column(String(250).evaluates_none(), nullable=False, unique=True)
    # some other fields

class ChainJob(Base):
    __tablename__ = "chain_job"
    __table_args__ = {'extend_existing': True}
    __guarded__ = ['id']
    id = Column(Integer, primary_key=True)
    chain_id = Column(Integer, ForeignKey('chain.id'))
    job_id …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

5
推荐指数
0
解决办法
488
查看次数

使用doctrine2从table_b INSERT INTO table_a SELECT*

教义2是否支持某种"选择进入"-syntax?

在纯MySQL中,它将是这样的:

INSERT INTO tbl_temp2 (fld_id)
  SELECT tbl_temp1.fld_order_id
  FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
Run Code Online (Sandbox Code Playgroud)

我检查了手册,但没有成功.

mysql doctrine-orm

2
推荐指数
1
解决办法
5631
查看次数

使用c#在Word中按名称访问表

我有一个包含很多表格的文档。我想使用 C# 和 Microsoft.Office.Interop.Word 修改这些表。我读到我可以使用 Tables 界面遍历所有表。

问题:是否可以为表指定名称/ID 并按名称访问该表?(就像 Powerpoint 自动化中的形状一样)。

问题 2:如果 Microsoft.Office.Interop.Word 无法实现,像 Aspose Words 这样的替代方案是否提供了更方便的方法?

c# office-interop

2
推荐指数
1
解决办法
4301
查看次数