• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony aktualizacja pola

Cloud VPS
0 głosów
307 wizyt
pytanie zadane 13 września 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

Cześć.

Próbuje zaktualizować jedno pole w MySql , ale ciągle mi wywala błąd ,że nie widzi 

setLoginAttempt

i nie za bardzo wiem czemu 

mój kod:

  for ($i=0; $i = 3; $i++){
               $en = $this->getDoctrine()->getManager();
               $user = $en->getRepository(User::class)->findBy(['username' => 'test3']);

               $user->setLoginAttempt($i);

               $en->persist($user);
               $en->flush();
           }

Z góry dziękuje za wskazówkę 

1 odpowiedź

0 głosów
odpowiedź 13 września 2019 przez Ehlert Ekspert (215,050 p.)
Co to znaczy nie widzi? Podaj kod klasy user, treść błędu i configi doctrine'a dla tej encji.
komentarz 13 września 2019 przez michal_php Stary wyjadacz (13,700 p.)

Kod błędu: 

Call to a member function setLoginAttempt() on array

Klasa User (jest dość duża więc dam te najważniejsze):

  /** @var TimePoints */
    private $timePoints;

    private $managedDepartments;

    /** @var string */
    private $loginAttempt;

 /**
     * @param Id $id
     * @param string $username
     * @param string $email
     * @param string $password
     * @param string $lastName
     * @param Role $role
     * @param null|string $firstName
     * @param null|string $phoneNumber
     * @param null|Company $company
     */
    public function __construct(
        Id $id,
        ?string $firstName = null,
        ?string $phoneNumber = null,
        ?int $loginAttempt = null,
        ?CompanyGroup $company = null,
        $departments = []
    ) {
        $this->id = $id;
        $this->username = $username;
        $this->email = $email;
        $this->password = $password;
        $this->lastName = $lastName;
        $this->setRole($role);
        $this->firstName = $firstName;
        $this->phoneNumber = $phoneNumber;
        $this->loginAttempt = $loginAttempt;
     
    }
 /**
     * @return string
     */
    public function getLoginAttempt(): string
    {
        return $this->loginAttempt;
    }

    /**
     * @param string $loginAttempt
     */
    public function setLoginAttempt(string $loginAttempt): void
    {
        $this->loginAttempt = $loginAttempt;
    }
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="Chemiq\Domain\Model\User\User" table="users">
        <indexes>
            <index name="user_username_idx" columns="username"/>
            <index name="user_email_idx" columns="email"/>
        </indexes>    
 <field name="loginAttempt" type="string" column="login_attempt" nullable="true"/>

 

komentarz 13 września 2019 przez Ehlert Ekspert (215,050 p.)
Polecam używać funkcji dump. Wywołaj dump, w argumencie daj usera, i potem wywołaj die.

Podobne pytania

0 głosów
1 odpowiedź 338 wizyt
pytanie zadane 16 września 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)
0 głosów
0 odpowiedzi 157 wizyt
pytanie zadane 29 marca 2019 w PHP przez querly Nowicjusz (170 p.)
0 głosów
1 odpowiedź 289 wizyt
pytanie zadane 16 stycznia 2020 w PHP przez michal_php Stary wyjadacz (13,700 p.)

93,485 zapytań

142,417 odpowiedzi

322,765 komentarzy

62,897 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...