2014-01-10 5 views
9

Ich möchte einen Benutzer registrieren. In meiner Datenbank habe ich eine Tabelle user mit einem FK player_id und in meiner Spieler-Tabelle habe ich einen FK team_id von meiner Team-Tabelle.Abfangbarer schwerwiegender Fehler: Argument 1 übergeben an ... muss eine Instanz von ... sein, Array gegeben

Das ist mein RegisterType Form:

class RegisterType extends AbstractType 
{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('userFirstname', 'text', [ 
       'label' => 'Given name*', 
       'attr' => [ 
        'placeholder' => 'Enter your given name.', 
       ], 
      ]) 
      ->add('userSurname', 'text', [ 
       'label' => 'Family name*', 
       'attr' => ['placeholder' => 'Enter your family name.'], 
      ]) 
      ->add('userType', 'choice', array(
       'choices' => array('E' => 'ENTHOUSIAST', 'P' => 'PLAYER', 'T' => 'TRAINER'), 
       'label' => 'User Type*', 
       'attr' => array('placeholder' => 'User Type') 
      )) 
      ->add('player', new PlayerType()) 
      ->add('userUsername', 'text', [ 
       'label' => 'Username*', 
       'attr' => ['placeholder' => 'Enter a username.'], 
      ]) 
      ->add('userEmail', 'email', [ 
       'label' => 'Email address*', 
       'attr' => ['placeholder' => 'Enter your email address.'], 
      ]) 
      ->add('userPassword', 'repeated', [ 
       'type'   => 'password', 
       'first_name'  => 'password', 
       'first_options' => [ 
        'label' => 'Password*', 
        'attr' => ['placeholder' => 'Enter a password.'], 
       ], 
       'second_name' => 'confirm', 
       'second_options' => [ 
        'label' => 'Password (repeat)*', 
        'attr' => ['placeholder' => 'Repeat the password.'], 
       ], 
       'invalid_message' => 'The passwords are not identical.', 
      ]) 
      ->add('btn_register', 'submit', [ 
       'label' => 'Register', 
      ]) 
     ; 
    } 

    /** 
    * @return string 
    */ 
    public function getName() 
    { 
     return 'register'; 
    } 
} 

Wie Sie sehen, habe ich einen Link zu einer anderen Form 'player' hinzugefügt. Das ist mein player Form:

class PlayerType extends AbstractType 
{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('playerLicensenumber', 'text', [ 
       'label' => 'Your License number*', 
       'attr' => ['placeholder' => 'Enter your license number.'], 
      ]) 
      ->add('playerPosition', 'choice', array(
       'choices' => array('T' => 'Trainer', 'S' => 'Spelverdeler', 'R' => 'Receptie/Hoek', 'L' => 'Libero', 'M' => 'Midden', 'O' => 'Opposite', 'A' => 'All-round'), 
       'label'   => 'Position you play at*', 
       'attr' => array('placeholder' => 'Enter your play position.') 
      )) 
      ->add('playerBirthyear', 'text', array(
       'label' => 'Your Birth Year', 
       'attr' => ['placeholder' => 'Enter your birth year.'], 
       'required' => false 
      )) 
      ->add('team', 'text', array(
       'label' => 'You play with*', 
       'attr' => ['placeholder' => 'Enter your team.'] 
      )) 
     ; 
    } 

    /** 
    * @return string 
    */ 
    public function getName() 
    { 
     return 'player'; 
    } 
} 

Und in meinem register.html.twig Ansicht Ich habe alle meine Benutzer Felder, die einen meiner Spieler Felder wie folgt aus:

<div class="form-group{{ registerForm.player.playerLicensenumber.vars.valid ? '' : class_error }}"> 
    {{ form_label(registerForm.player.playerLicensenumber, label|default(), 
    { "label_attr": { "class": "col-sm-3 control-label"}}) }} 
    <div class="col-sm-9"> 
     {{ form_widget(registerForm.player.playerLicensenumber, 
     {"attr": {"class": "form-control"} }) }} 
    </div> 
    {% if not registerForm.player.playerLicensenumber.vars.valid %} 
     <div class="col-sm-offset-3 col-sm-9 has-error"> 
      <h5><i class="glyphicon glyphicon-warning-sign"></i> <strong>Please fix:</strong></h5> 
      {{ form_errors(registerForm.player.playerLicensenumber) }} 
     </div> 
    {% endif %} 
</div> 
<div class="form-group{{ registerForm.player.playerBirthyear.vars.valid ? '' : class_error }}"> 
    {{ form_label(registerForm.player.playerBirthyear, label|default(), 
    { "label_attr": { "class": "col-sm-3 control-label"}}) }} 
    <div class="col-sm-9"> 
     {{ form_widget(registerForm.player.playerBirthyear, 
     {"attr": {"class": "form-control"} }) }} 
    </div> 
    {% if not registerForm.player.playerBirthyear.vars.valid %} 
     <div class="col-sm-offset-3 col-sm-9 has-error"> 
      <h5><i class="glyphicon glyphicon-warning-sign"></i> <strong>Please fix:</strong></h5> 
      {{ form_errors(registerForm.player.playerBirthyear) }} 
     </div> 
    {% endif %} 
</div> 
<div class="form-group{{ registerForm.player.playerPosition.vars.valid ? '' : class_error }}"> 
    {{ form_label(registerForm.player.playerPosition, label|default(), 
    { "label_attr": { "class": "col-sm-3 control-label"}}) }} 
    <div class="col-sm-9"> 
     {{ form_widget(registerForm.player.playerPosition, 
     {"attr": {"class": "form-control"} }) }} 
    </div> 
    {% if not registerForm.player.playerPosition.vars.valid %} 
     <div class="col-sm-offset-3 col-sm-9 has-error"> 
      <h5><i class="glyphicon glyphicon-warning-sign"></i> <strong>Please fix:</strong></h5> 
      {{ form_errors(registerForm.player.playerPosition) }} 
     </div> 
    {% endif %} 
</div> 
<div class="form-group{{ registerForm.player.team.vars.valid ? '' : class_error }}"> 
    {{ form_label(registerForm.player.team, label|default(), 
    { "label_attr": { "class": "col-sm-3 control-label"}}) }} 
    <div class="col-sm-9"> 
     {{ form_widget(registerForm.player.team, 
     {"attr": {"class": "form-control"} }) }} 
    </div> 
    {% if not registerForm.player.team.vars.valid %} 
     <div class="col-sm-offset-3 col-sm-9 has-error"> 
      <h5><i class="glyphicon glyphicon-warning-sign"></i> <strong>Please fix:</strong></h5> 
      {{ form_errors(registerForm.player.team) }} 
     </div> 
    {% endif %} 
</div> 

Das ist mein Benutzer Entity Klasse:

class Users 
{ 
    /** 
    * @var string 
    * 
    * @ORM\Column(name="user_username", type="string", length=45, nullable=false) 
    */ 
    private $userUsername; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="user_firstname", type="string", length=45, nullable=false) 
    */ 
    private $userFirstname; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="user_surname", type="string", length=255, nullable=false) 
    */ 
    private $userSurname; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="user_email", type="string", length=255, nullable=false) 
    */ 
    private $userEmail; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="user_type", type="string", nullable=false) 
    */ 
    private $userType; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="user_password", type="string", length=60, nullable=false) 
    */ 
    private $userPassword; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="user_salt", type="string", length=30, nullable=false) 
    */ 
    private $userSalt; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="user_token", type="string", length=45, nullable=true) 
    */ 
    private $userToken; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="user_created", type="datetime", nullable=false) 
    */ 
    private $userCreated; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="user_modified", type="datetime", nullable=true) 
    */ 
    private $userModified; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="user_deleted", type="datetime", nullable=true) 
    */ 
    private $userDeleted; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="user_lastlogin", type="datetime", nullable=true) 
    */ 
    private $userLastlogin; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="user_confirmed", type="datetime", nullable=true) 
    */ 
    private $userConfirmed; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="user_locked", type="datetime", nullable=true) 
    */ 
    private $userLocked; 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="user_id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $userId; 

    /** 
    * @var \VolleyScout\VolleyScoutBundle\Entity\Roles 
    * 
    * @ORM\ManyToOne(targetEntity="VolleyScout\VolleyScoutBundle\Entity\Roles") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="role_id", referencedColumnName="role_id") 
    * }) 
    */ 
    private $role; 

    /** 
    * @var \Doctrine\Common\Collections\Collection 
    * 
    * @ORM\ManyToMany(targetEntity="VolleyScout\VolleyScoutBundle\Entity\Teams", inversedBy="user") 
    * @ORM\JoinTable(name="user_follows_teams", 
    * joinColumns={ 
    *  @ORM\JoinColumn(name="user_id", referencedColumnName="user_id") 
    * }, 
    * inverseJoinColumns={ 
    *  @ORM\JoinColumn(name="team_id", referencedColumnName="team_id") 
    * } 
    *) 
    */ 
    private $team; 

    /** 
    * @var \Doctrine\Common\Collections\Collection 
    * 
    * @ORM\ManyToMany(targetEntity="VolleyScout\VolleyScoutBundle\Entity\Competitions", inversedBy="user") 
    * @ORM\JoinTable(name="user_follows_competitions", 
    * joinColumns={ 
    *  @ORM\JoinColumn(name="user_id", referencedColumnName="user_id") 
    * }, 
    * inverseJoinColumns={ 
    *  @ORM\JoinColumn(name="competition_id", referencedColumnName="competition_id") 
    * } 
    *) 
    */ 
    private $competition; 

    /** 
    * Constructor 
    */ 
    public function __construct() 
    { 
     $this->team = new \Doctrine\Common\Collections\ArrayCollection(); 
     $this->competition = new \Doctrine\Common\Collections\ArrayCollection(); 
    } 


    /** 
    * Set userUsername 
    * 
    * @param string $userUsername 
    * @return Users 
    */ 
    public function setUserUsername($userUsername) 
    { 
     $this->userUsername = $userUsername; 

     return $this; 
    } 

    /** 
    * Get userUsername 
    * 
    * @return string 
    */ 
    public function getUserUsername() 
    { 
     return $this->userUsername; 
    } 

    /** 
    * Set userFirstname 
    * 
    * @param string $userFirstname 
    * @return Users 
    */ 
    public function setUserFirstname($userFirstname) 
    { 
     $this->userFirstname = $userFirstname; 

     return $this; 
    } 

    /** 
    * Get userFirstname 
    * 
    * @return string 
    */ 
    public function getUserFirstname() 
    { 
     return $this->userFirstname; 
    } 

    /** 
    * Set userSurname 
    * 
    * @param string $userSurname 
    * @return Users 
    */ 
    public function setUserSurname($userSurname) 
    { 
     $this->userSurname = $userSurname; 

     return $this; 
    } 

    /** 
    * Get userSurname 
    * 
    * @return string 
    */ 
    public function getUserSurname() 
    { 
     return $this->userSurname; 
    } 

    /** 
    * Set userEmail 
    * 
    * @param string $userEmail 
    * @return Users 
    */ 
    public function setUserEmail($userEmail) 
    { 
     $this->userEmail = $userEmail; 

     return $this; 
    } 

    /** 
    * Get userEmail 
    * 
    * @return string 
    */ 
    public function getUserEmail() 
    { 
     return $this->userEmail; 
    } 

    /** 
    * Set userType 
    * 
    * @param string $userType 
    * @return Users 
    */ 
    public function setUserType($userType) 
    { 
     $this->userType = $userType; 

     return $this; 
    } 

    /** 
    * Get userType 
    * 
    * @return string 
    */ 
    public function getUserType() 
    { 
     return $this->userType; 
    } 

    /** 
    * Set userPassword 
    * 
    * @param string $userPassword 
    * @return Users 
    */ 
    public function setUserPassword($userPassword) 
    { 
     $this->userPassword = $userPassword; 

     return $this; 
    } 

    /** 
    * Get userPassword 
    * 
    * @return string 
    */ 
    public function getUserPassword() 
    { 
     return $this->userPassword; 
    } 

    /** 
    * Set userSalt 
    * 
    * @param string $userSalt 
    * @return Users 
    */ 
    public function setUserSalt($userSalt) 
    { 
     $this->userSalt = $userSalt; 

     return $this; 
    } 

    /** 
    * Get userSalt 
    * 
    * @return string 
    */ 
    public function getUserSalt() 
    { 
     return $this->userSalt; 
    } 

    /** 
    * Set userToken 
    * 
    * @param string $userToken 
    * @return Users 
    */ 
    public function setUserToken($userToken) 
    { 
     $this->userToken = $userToken; 

     return $this; 
    } 

    /** 
    * Get userToken 
    * 
    * @return string 
    */ 
    public function getUserToken() 
    { 
     return $this->userToken; 
    } 

    /** 
    * Set userCreated 
    * 
    * @param \DateTime $userCreated 
    * @return Users 
    */ 
    public function setUserCreated($userCreated) 
    { 
     $this->userCreated = $userCreated; 

     return $this; 
    } 

    /** 
    * Get userCreated 
    * 
    * @return \DateTime 
    */ 
    public function getUserCreated() 
    { 
     return $this->userCreated; 
    } 

    /** 
    * Set userModified 
    * 
    * @param \DateTime $userModified 
    * @return Users 
    */ 
    public function setUserModified($userModified) 
    { 
     $this->userModified = $userModified; 

     return $this; 
    } 

    /** 
    * Get userModified 
    * 
    * @return \DateTime 
    */ 
    public function getUserModified() 
    { 
     return $this->userModified; 
    } 

    /** 
    * Set userDeleted 
    * 
    * @param \DateTime $userDeleted 
    * @return Users 
    */ 
    public function setUserDeleted($userDeleted) 
    { 
     $this->userDeleted = $userDeleted; 

     return $this; 
    } 

    /** 
    * Get userDeleted 
    * 
    * @return \DateTime 
    */ 
    public function getUserDeleted() 
    { 
     return $this->userDeleted; 
    } 

    /** 
    * Set userLastlogin 
    * 
    * @param \DateTime $userLastlogin 
    * @return Users 
    */ 
    public function setUserLastlogin($userLastlogin) 
    { 
     $this->userLastlogin = $userLastlogin; 

     return $this; 
    } 

    /** 
    * Get userLastlogin 
    * 
    * @return \DateTime 
    */ 
    public function getUserLastlogin() 
    { 
     return $this->userLastlogin; 
    } 

    /** 
    * Set userConfirmed 
    * 
    * @param \DateTime $userConfirmed 
    * @return Users 
    */ 
    public function setUserConfirmed($userConfirmed) 
    { 
     $this->userConfirmed = $userConfirmed; 

     return $this; 
    } 

    /** 
    * Get userConfirmed 
    * 
    * @return \DateTime 
    */ 
    public function getUserConfirmed() 
    { 
     return $this->userConfirmed; 
    } 

    /** 
    * Set userLocked 
    * 
    * @param \DateTime $userLocked 
    * @return Users 
    */ 
    public function setUserLocked($userLocked) 
    { 
     $this->userLocked = $userLocked; 

     return $this; 
    } 

    /** 
    * Get userLocked 
    * 
    * @return \DateTime 
    */ 
    public function getUserLocked() 
    { 
     return $this->userLocked; 
    } 

    /** 
    * Get userId 
    * 
    * @return integer 
    */ 
    public function getUserId() 
    { 
     return $this->userId; 
    } 

    /** 
    * Set role 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Roles $role 
    * @return Users 
    */ 
    public function setRole(\VolleyScout\VolleyScoutBundle\Entity\Roles $role = null) 
    { 
     $this->role = $role; 

     return $this; 
    } 

    /** 
    * Get role 
    * 
    * @return \VolleyScout\VolleyScoutBundle\Entity\Roles 
    */ 
    public function getRole() 
    { 
     return $this->role; 
    } 

    /** 
    * Add team 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Teams $team 
    * @return Users 
    */ 
    public function addTeam(\VolleyScout\VolleyScoutBundle\Entity\Teams $team) 
    { 
     $this->team[] = $team; 

     return $this; 
    } 

    /** 
    * Remove team 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Teams $team 
    */ 
    public function removeTeam(\VolleyScout\VolleyScoutBundle\Entity\Teams $team) 
    { 
     $this->team->removeElement($team); 
    } 

    /** 
    * Get team 
    * 
    * @return \Doctrine\Common\Collections\Collection 
    */ 
    public function getTeam() 
    { 
     return $this->team; 
    } 

    /** 
    * Add competition 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Competitions $competition 
    * @return Users 
    */ 
    public function addCompetition(\VolleyScout\VolleyScoutBundle\Entity\Competitions $competition) 
    { 
     $this->competition[] = $competition; 

     return $this; 
    } 

    /** 
    * Remove competition 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Competitions $competition 
    */ 
    public function removeCompetition(\VolleyScout\VolleyScoutBundle\Entity\Competitions $competition) 
    { 
     $this->competition->removeElement($competition); 
    } 

    /** 
    * Get competition 
    * 
    * @return \Doctrine\Common\Collections\Collection 
    */ 
    public function getCompetition() 
    { 
     return $this->competition; 
    } 

    private $player; 

    /** 
    * Get player 
    * 
    * @return \VolleyScout\VolleyScoutBundle\Entity\Players 
    */ 
    public function getPlayer() { 
     return $this->player; 
    } 
    /** 
    * Set player 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Players $player 
    * @return Users 
    */ 
    public function setPlayer(\VolleyScout\VolleyScoutBundle\Entity\Players $player){ 
     $this->player = $player; 
    } 
} 

Und meine Spieler Entity Klasse:

class Players 
{ 
    /** 
    * @var string 
    * 
    * @ORM\Column(name="player_name", type="string", length=255, nullable=false) 
    */ 
    private $playerName; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="player_licensenumber", type="string", length=45, nullable=false) 
    */ 
    private $playerLicensenumber; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="player_position", type="string", nullable=false) 
    */ 
    private $playerPosition; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="player_birthyear", type="datetime", nullable=true) 
    */ 
    private $playerBirthyear; 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="player_id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $playerId; 

    /** 
    * @var \VolleyScout\VolleyScoutBundle\Entity\Myteam 
    * 
    * @ORM\ManyToOne(targetEntity="VolleyScout\VolleyScoutBundle\Entity\Myteam") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="myteam_id", referencedColumnName="myteam_id") 
    * }) 
    */ 
    private $myteam; 

    /** 
    * @var \VolleyScout\VolleyScoutBundle\Entity\Teams 
    * 
    * @ORM\ManyToOne(targetEntity="VolleyScout\VolleyScoutBundle\Entity\Teams") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="team_id", referencedColumnName="team_id") 
    * }) 
    */ 
    private $team; 

    /** 
    * @var \VolleyScout\VolleyScoutBundle\Entity\Users 
    * 
    * @ORM\ManyToOne(targetEntity="VolleyScout\VolleyScoutBundle\Entity\Users") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="user_id", referencedColumnName="user_id") 
    * }) 
    */ 
    private $user; 



    /** 
    * Set playerName 
    * 
    * @param string $playerName 
    * @return Players 
    */ 
    public function setPlayerName($playerName) 
    { 
     $this->playerName = $playerName; 

     return $this; 
    } 

    /** 
    * Get playerName 
    * 
    * @return string 
    */ 
    public function getPlayerName() 
    { 
     return $this->playerName; 
    } 

    /** 
    * Set playerLicensenumber 
    * 
    * @param string $playerLicensenumber 
    * @return Players 
    */ 
    public function setPlayerLicensenumber($playerLicensenumber) 
    { 
     $this->playerLicensenumber = $playerLicensenumber; 

     return $this; 
    } 

    /** 
    * Get playerLicensenumber 
    * 
    * @return string 
    */ 
    public function getPlayerLicensenumber() 
    { 
     return $this->playerLicensenumber; 
    } 

    /** 
    * Set playerPosition 
    * 
    * @param string $playerPosition 
    * @return Players 
    */ 
    public function setPlayerPosition($playerPosition) 
    { 
     $this->playerPosition = $playerPosition; 

     return $this; 
    } 

    /** 
    * Get playerPosition 
    * 
    * @return string 
    */ 
    public function getPlayerPosition() 
    { 
     return $this->playerPosition; 
    } 

    /** 
    * Set playerBirthyear 
    * 
    * @param \DateTime $playerBirthyear 
    * @return Players 
    */ 
    public function setPlayerBirthyear($playerBirthyear) 
    { 
     $this->playerBirthyear = $playerBirthyear; 

     return $this; 
    } 

    /** 
    * Get playerBirthyear 
    * 
    * @return \DateTime 
    */ 
    public function getPlayerBirthyear() 
    { 
     return $this->playerBirthyear; 
    } 

    /** 
    * Get playerId 
    * 
    * @return integer 
    */ 
    public function getPlayerId() 
    { 
     return $this->playerId; 
    } 

    /** 
    * Set myteam 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Myteam $myteam 
    * @return Players 
    */ 
    public function setMyteam(\VolleyScout\VolleyScoutBundle\Entity\Myteam $myteam = null) 
    { 
     $this->myteam = $myteam; 

     return $this; 
    } 

    /** 
    * Get myteam 
    * 
    * @return \VolleyScout\VolleyScoutBundle\Entity\Myteam 
    */ 
    public function getMyteam() 
    { 
     return $this->myteam; 
    } 

    /** 
    * Set team 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Teams $team 
    * @return Players 
    */ 
    public function setTeam(\VolleyScout\VolleyScoutBundle\Entity\Teams $team = null) 
    { 
     $this->team = $team; 

     return $this; 
    } 

    /** 
    * Get team 
    * 
    * @return \VolleyScout\VolleyScoutBundle\Entity\Teams 
    */ 
    public function getTeam() 
    { 
     return $this->team; 
    } 

    /** 
    * Set user 
    * 
    * @param \VolleyScout\VolleyScoutBundle\Entity\Users $user 
    * @return Players 
    */ 
    public function setUser(\VolleyScout\VolleyScoutBundle\Entity\Users $user = null) 
    { 
     $this->user = $user; 

     return $this; 
    } 

    /** 
    * Get user 
    * 
    * @return \VolleyScout\VolleyScoutBundle\Entity\Users 
    */ 
    public function getUser() 
    { 
     return $this->user; 
    } 
} 
jetzt

Mein Problem ist, wenn ich mir die folgende Fehlermeldung einreichen möge:

ContextErrorException: Catchable Fatal Error: Argument 1 passed to VolleyScout\VolleyScoutBundle\Entity\Users::setPlayer() must be an instance of VolleyScout\VolleyScoutBundle\Entity\Players, array given, called in /Applications/mampstack-5.4.20-0/apache2/htdocs/volleyscout/vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php on line 360 and defined in /Applications/mampstack-5.4.20-0/apache2/htdocs/volleyscout/src/VolleyScout/VolleyScoutBundle/Entity/Users.php line 609 

UPDATE:

Die 609-Regel ist dies:

public function setPlayer(\VolleyScout\VolleyScoutBundle\Entity\Players $player){ 
    $this->player = $player; 
} 

Regel 359, 360 in PropertyAccessor.php

if ($reflClass->hasMethod($setter) && $reflClass->getMethod($setter)->isPublic()) { 
     $object->$setter($value); 
+0

Welches ist Linie 360? – Barmar

+0

Regel hinzugefügt, um Post zu beginnen (Update) – nielsv

+0

Eigentlich ist die wichtigere Zeile Zeile 360 ​​von PropertyAccessor.php. – Barmar

Antwort

11

Lassen Sie uns diesen Fehler auseinander nehmen, damit Sie sehen können, wie man Fehlermeldungen erkennt.

ContextErrorException: Catchable Fatal Error: 

Dies ist die Art des Fehlers. Sie können einen Fehlerhandler schreiben, um diese zu behandeln. Diese

Argument 1 passed to VolleyScout\VolleyScoutBundle\Entity\Users::setPlayer() 
must be an instance of VolleyScout\VolleyScoutBundle\Entity\Players, 

bedeutet, dass, wenn Benutzer :: setPlayer() aufgerufen wird, muss man es nennen einen Player-Objekt in dem Argument verwendet wird.

array given, 

Das bedeutet, dass anstelle eines Player-Objekts ein Array im Argument vorhanden war.

Dies zeigt Ihnen, wo das Problem ist: Zeile 360 ​​von PropertyAccessor.php.

and defined in /Applications/mampstack-5.4.20-0/apache2/htdocs/volleyscout 
/src/VolleyScout/VolleyScoutBundle/Entity/Users.php line 609 

Dies sagt Ihnen, welche Zeile der Klasse Benutzer beteiligt ist.

Alles, was Sie tun müssen, ist, das Array in Zeile 360 ​​zu einem Player-Objekt zu ändern. Dann können Sie mit dem nächsten Fehler fortfahren.

EDIT:

Weil Linie 360 ​​von irgendwo anders genannt wird, werden Sie verfolgen müssen, um rückwärts, was auch immer wurde Linie 360 ​​anrufen.In diesem Fall ist es diese Zeile, die Sie ein Problem ist zu geben:

$object->$setter($value); 

Der $value soll ein Spielerobjekt sein, nicht ein Array. Woher kommt $value?

0

Hatte dieses Problem und es trieb mich verrückt.

Sobald ich richtig diese Methode in der Klasse hinzugefügt PlayerType erstreckt Zusammenfassung Typ:

/** 
* @param OptionsResolver $resolver 
*/ 
public function configureOptions(OptionsResolver $resolver) 
{ 
    $resolver->setDefaults(array(
     'data_class' => 'AppBundle\Entity\Player' 
    )); 
} 

Es würde wissen, dass das Array sollte auf die richtige Klasse gegossen werden. Und es hat funktioniert.

Verwandte Themen