Symfony2给出的类型为“object or array”,“string”的预期参数(Symfony2 Expected argument of type “object or array”,

编程入门 行业动态 更新时间:2024-10-15 10:14:51
Symfony2给出的类型为“object or array”,“string”的预期参数(Symfony2 Expected argument of type “object or array”, “string” given)

我正在拼命地用实体City OneToMany Anagrafic保存表格。 我在表单中输入了“property_path”CityType,我返回错误,

Expected argument of type “object or array”, “string” given

我不明白我做错了什么!

class Anagrafic { /** * @ORM\ManyToOne(targetEntity="City", inversedBy="anagrafics", cascade={"persist"}) * @ORM\JoinColumn(name="city_id", referencedColumnName="id") */ private $city; //.. //.. class City { /** * @ORM\OneToMany(targetEntity="Anagrafic", mappedBy="city", cascade={"persist"}) */ private $anagrafics; //... //... class CityType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('comune', 'hidden', array('property_path' => 'city.id')) //.. //.. class AnagraficType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('city', new CityType())

编辑:对不完整的信息,这是例外:

CRITICAL - Symfony\Component\Form\Exception\UnexpectedTypeException: Expected argument of type "object or array", "string" given (uncaught exception) at /var/www/MyBusiness0_1/vendor/symfony/symfony/src/Symfony/Component/Form/Util/PropertyPath.php line 342 /var/www/MyBusiness0_1/vendor/symfony/symfony/src/Symfony/Component/Form/Util/PropertyPath.php at line 342 for ($i = 0; $i <= $lastIndex; ++$i) { if (!is_object($objectOrArray) && !is_array($objectOrArray)) { throw new UnexpectedTypeException($objectOrArray, 'object or array'); } $property = $this->elements[$i];

I'm trying desperately to save the form with entity City OneToMany Anagrafic. I entered the "property_path" CityType the form and I returned error,

Expected argument of type “object or array”, “string” given

I do not understand what I'm doing wrong!

class Anagrafic { /** * @ORM\ManyToOne(targetEntity="City", inversedBy="anagrafics", cascade={"persist"}) * @ORM\JoinColumn(name="city_id", referencedColumnName="id") */ private $city; //.. //.. class City { /** * @ORM\OneToMany(targetEntity="Anagrafic", mappedBy="city", cascade={"persist"}) */ private $anagrafics; //... //... class CityType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('comune', 'hidden', array('property_path' => 'city.id')) //.. //.. class AnagraficType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('city', new CityType())

EDIT: Sorry for the incomplete information, this is the exception:

CRITICAL - Symfony\Component\Form\Exception\UnexpectedTypeException: Expected argument of type "object or array", "string" given (uncaught exception) at /var/www/MyBusiness0_1/vendor/symfony/symfony/src/Symfony/Component/Form/Util/PropertyPath.php line 342 /var/www/MyBusiness0_1/vendor/symfony/symfony/src/Symfony/Component/Form/Util/PropertyPath.php at line 342 for ($i = 0; $i <= $lastIndex; ++$i) { if (!is_object($objectOrArray) && !is_array($objectOrArray)) { throw new UnexpectedTypeException($objectOrArray, 'object or array'); } $property = $this->elements[$i];

最满意答案

问题是当你传递一个字符串或一个数字时,symfony需要一个对象,所以我们需要实现一个DataTransformer来将一个字符串变成对象,反之亦然。

http://symfony.com/doc/master/cookbook/form/data_transformers.html

问题解决了! ;-)

the problem was that when you pass a string or a number, symfony expects an object, so we need to implement a DataTransformer to turn a string into object and vice versa.

http://symfony.com/doc/master/cookbook/form/data_transformers.html

Problem solved! ;-)

更多推荐

本文发布于:2023-07-27 20:25:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1295051.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:参数   类型   array   object   argument

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!