从 symfony 2.3.8 嵌入 - 当allow_add为true时为空

2024-02-09

我尝试以嵌入形式保存新数据(当我修改时,它可以正常工作),但allow_add不起作用。

当我发送数据抛出原型输入时,请求->请求是:

ads[adsCapPublisher][new_created_0][publisher]:2302
ads[adsCapPublisher][new_created_0][dailyLimit]:2
ads[adsCapPublisher][edit_0][publisher]: 5201
ads[adsCapPublisher][edit_0][dailyLimit]: 5

edit_0 处理得很好,并使用 AdsCapPublisherType 创建了 AdsType,但是当我添加新输入时会抛出 javascript,处理数据时会在 $request->handleRequest() 中失败:

Catchable fatal error: Argument 1 passed to addAdsCapPublisher() must be an instance of AdsCapPublisher, null given in Ads.php on line 721

数据为空。当我将allow_add 设置为 false 时,编辑实体处理良好,但新闻返回表单错误:

this form should not contain extra fields

这是我的课程:

Ads.php

class Ads{

 /**
 * @ORM\OneToMany(targetEntity="AdsCapPublisher", mappedBy="ad", cascade={"persist", "remove"})
 **/
protected $adsCapPublisher;


public function addAdsCapPublisher(AdsCapPublisher $adCapPublisher)
{
    $this->adsCapPublisher[] = $adCapPublisher;

    return $this;
}

public function removeAdsCapPublisher(AdsCapPublisher $adCapPublisher)
{
    $this->adsCapPublisher->removeElement($adCapPublisher);
}

public function getAdsCapPublisher()
{
    return $this->adsCapPublisher;
}

public function setAdsCapPublisher($adsCapPublisher)
{
    $this->adsCapPublisher = $adsCapPublisher;

    return $this;
}

[...]
}

AdsCapPublisher.php

class AdsCapPublisher{


/**
 * @var Users
 *
 * @ORM\ManyToOne(targetEntity="Users", fetch="LAZY")
 * @ORM\JoinColumn(name="id_publisher", referencedColumnName="id_user")
 */
protected $publisher;

/**
 * @var decimal $dailyLimit
 *
 * @ORM\Column(name="daily_limit", type="decimal", nullable=false)
 */
protected $dailyLimit;

[...]
}

广告类型.php

public function buildForm(FormBuilderInterface $builder, array $options)
{
        $entityId= $builder->getData();
        $builder->add('adsCapPublisher', 'collection', array(
            'type' => new AdsCapPublisherType(),
            'required' => false,
            'allow_add' => true,
            'allow_delete' => true,
            'by_reference' => false
        ))

AdsCapPublisherType.php

class AdsCapPublisherType extends AbstractType{

public function buildForm(FormBuilderInterface $builder, array $options)
{
    // -- SECTION: General

    $builder
        ->add('publisher', 'hidden', array(
            'attr' => array(
                'class' => 'js-field-popup-publisher-added'
            )))
        ->add('dailyLimit', 'text', array(
            'required' => false,
            'attr' => array(
                'class' => 'js-field-popup-budget-added form-control k-input-field k-is-input-text k-ellipsis k-has-currency-inside-input',
                'min' => 0,
            )
        ));
}

public function getName()
{
    return 'adsCapPublisher';
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'csrf_protection' => false,
        'data_class' => 'Entity\AdsCapPublisher',
        'csrf_field_name' => '_token',
        'intention' => 'ads',
        'translation_domain' => 'ads',
        'empty_data' => null
    ));
}

}

有什么帮助吗? :S


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 symfony 2.3.8 嵌入 - 当allow_add为true时为空 的相关文章

  • Laravel - 删除整个集合

    我有文章的图像 当我更新文章时 我想检查图像是否相同 如果不是 我想删除它们 但如果可能的话 我想删除整个集合而不进行其他查询 诸如此类就像我在下面的代码中一样 images gt delete 这是我的功能 images Media wh
  • PHPUnit 和来自 Guzzle 的模拟请求

    我有一堂具有以下功能的课程 public function get string uri stdClass this gt client new Client response this gt client gt request GET u
  • PHP、jQuery Ajax 和 json 跨域返回

    我的 php 编码页面位于一台返回 json 结果的服务器上 php 文件名为 getInfoData php 返回如下 echo json encode v 不 我可以使用 getJSON 读取 json 并在同一服务器上运行它 但我需要
  • 如何显示多维数组第二层的 json 值?

    解决此代码时遇到问题 这些是数组 Array 0 gt stdClass Object id gt 1 name gt delux price gt 213 description gt tv gt 0 breakfast gt 0 par
  • 使用factory faker创建的图像在存储在storage/public/images文件夹中时会被删除

    我正在尝试用假图像填充我的数据库 但是当 faker 将其保存到我的图像文件夹中时 一秒钟后它被删除 并且在我的数据库字段中我得到 0 我可以访问http lorempixel com http lorempixel com 也可以 pin
  • 如何使用 PHP 更改文件的标题属性

    用户使用我的 PHP 应用程序上传 PDF 文件 我将它们存储在 S3 上 稍后 其他用户会查看这些文件 我会在他们的浏览器中 内联 显示这些文件 问题在于 PDF 的 标题 属性显示在通常显示网站标题的浏览器选项卡中 由于它是由原始上传的
  • 如何转换为在视图上使用 Yii CDataProvider?

    我正在尝试学习 Yii 并查看了 Yii 文档 但仍然没有真正理解 我仍然不知道如何在控制器和视图上使用 CDataProvider 来显示视图上可用的所有博客文章 任何人都可以根据以下内容提供建议或举例 我的 PostController
  • 简单的 preg_replace 返回 null

    为什么这个非常简单的 preg replace 返回 null preg replace s test test 这个想法是删除空格 您忘记添加分隔符 preg replace s test test 而且最好使用 s 代替 s 在你的模式
  • 如何在 Laravel 中编写联合查询?

    我正在使用 laravel 5 0 并且我有 mysql 查询 SELECT surat masuk id surat surat masuk nomor surat FROM surat masuk WHERE EXISTS SELECT
  • 显示过去 7 天 PHP 的结果

    我想做的是显示过去 30 天的文章 但我现有的代码不断给我一个 mysql fetch assoc 错误 然后追溯到我的查询 这是代码 sql mysql query SELECT FROM table WHERE DATE datetim
  • Blueimp jQuery 文件上传,传递额外的表单数据

    我可以使用一些帮助 我已经设法使 blueimp jQuery 文件上传为我工作 但我仍然绝对是一个新手 我对 jQuery 等知之甚少 所以请尝试将其清晰明了地提供给我尽可能简单 我会尝试具体一点 好的 我想实现的是人们可以上传照片 并为
  • php在html页面中创建额外空间

    我是网络开发新手 我真的被这个愚蠢的问题困扰了 当我在 html 代码之前插入 php 代码时 如下所示 它在我的页面顶部创建了额外的空白空间 并将整个内容 推下 是否有可能以某种方式避免创建额外的空间 如果 php 代码位于 html 的
  • Laravel 5 / Codeception 未正确路由

    我正在尝试使用代码接收为控制器函数编写 API 测试用例 但遇到了一个问题 即控制器函数的路由似乎未正确评估 并且评估似乎根据我的不同而不同我的测试用例中有 这是我的测试用例中的代码示例 use ApiTester class Custom
  • 是否可以使用 Javascript 读取 PHP 会话?

    我正在使用 cakePHP 1 26 在控制器中 我得到了一个包含以下代码行的函数 this gt Session gt write testing user this gt Session gt read testing 现在系统编写了一
  • PDO fetch() 失败时会抛出异常吗?

    有没有方法PDO语句 fetch http php net manual en pdostatement fetch php如果 PDO 错误报告系统设置为抛出异常 则在失败时抛出异常 例如 如果我设置 PDO ATTR ERRMODE g
  • zend 模块特定配置问题

    我使用 zend 框架构建 REST Web 服务 并且使用模块来分隔我的 api 版本 现在 我想为每个模块 v1 和 v2 都有一个单独的配置文件 主要用于指定单独的数据库连接 我有这样的目录结构 application modules
  • PHP 与 .= 相反

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道是
  • 学说“没有命名的协会”

    将我添加到无法找出其学说映射出了什么问题的人列表中 我正在模拟国际象棋Game与一对多Halfmoves 有任何想法吗 DDL create table game game id int primary key create table h
  • php 打印 aa aaa ab aab 直到 zzz 的算法

    你好 我需要打印从 a 到 zzz 最多 3 个字母 例如我的输出应该是 A B Z AA AB AZ BA BB ZZ AAA AAB ZZZ 我在过去的 5 个小时里努力尝试 我找不到任何逻辑 我尝试了下面的代码 PHP 有一个方便的功
  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给

随机推荐