Symfony2 Devrait argument de type “objet ou d'un tableau”, “string” compte tenu de
J'essaie désespérément de sauver le formulaire de l'entité de la Ville de OneToMany Anagrafic.
Je suis entré dans la "property_path" CityType la forme et j'ai renvoyé l'erreur,
Expected argument of type “object or array”, “string” given
Je ne comprends pas ce que je fais mal!
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: Désolé pour l'information incomplète, c'est l'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];
Quelle erreur avez-vous?
c'est un quiz! "J'ai eu une erreur, et n'affiche pas le code complet ou le moment de l'erreur"
C'est dans le titre.
... en ligne ... dans le fichier ...
Je ne comprends pas ce que tu veux dire par "... en ligne ... dans le fichier ..."
c'est un quiz! "J'ai eu une erreur, et n'affiche pas le code complet ou le moment de l'erreur"
C'est dans le titre.
Expected argument of type “object or array”, “string” given
... en ligne ... dans le fichier ...
Je ne comprends pas ce que tu veux dire par "... en ligne ... dans le fichier ..."
OriginalL'auteur Lughino | 2013-02-22
Vous devez vous connecter pour publier un commentaire.
le problème était que lorsque vous passez une chaîne de caractères ou un nombre, symfony s'attend à un objet, nous devons donc mettre en œuvre une DataTransformer de transformer une chaîne de caractères en objet et vice-versa.
http://symfony.com/doc/master/cookbook/form/data_transformers.html
Problème résolu! 😉
OriginalL'auteur Lughino
Ressemble
propertyPath
s'attend à un objet ou un tableau. Si cette ligne est fausse:Vous êtes de passage à
city.id
ici et qui ne devrait pas être une chaîne de caractères. Je ne suis pas un Symfony utilisateur et ne sont pas familiers avec le FormBuilder de sorte que vous avez à la recherche du manuel comment utiliser leproperty_path
option.Btw. cela n'a rien à voir avec doctrine 2, de sorte qu'il serait approprié de supprimer cette balise.
An exception occurred while executing 'INSERT INTO City (city, zip, region_id, state_id) VALUES (?, ?, ?, ?)' with params {"1":"8094","2":null,"3":null,"4":null}: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'zip' cannot be null
Essayez d'enregistrer une nouvelle entité de la Ville, mais la Ville est la liste des villes déjà prédéfinis et de la relation Ville OneToMany Anagrafic ne devraient pas avoir à créer une nouvelle entité! Quel est le problème?OriginalL'auteur Bram Gerritsen