Chyba Kdyby/doctrine – metoda set

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jarek159
Člen | 23
+
0
-

Kdyby\Doctrine\MemberAccessException
Call to undefined method App\Users::SetUsername().

$user = new Users;
$user->SetUsername($values["username"]);
<?php
namespace App;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class Users extends \Kdyby\Doctrine\Entities\BaseEntity
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     */
    protected $id;

    /**
     * @ORM\Column(type="string")
     */
    protected $username;

    /**
     * @ORM\Column(type="string")
     */
    protected $password;

    /**
     * @var string
     *
     * @ORM\Column(name="ip", type="string", length=40, nullable=false)
     */
    protected $ip = '127.0.0.1';

    /**
     * @var integer
     *
     * @ORM\Column(name="lastlogin", type="bigint", nullable=false)
     */
    protected $lastlogin = '1438706485858';

    /**
     * @var float
     *
     * @ORM\Column(name="x", type="float", precision=10, scale=0, nullable=false)
     */
    protected $x = '0';

    /**
     * @var float
     *
     * @ORM\Column(name="y", type="float", precision=10, scale=0, nullable=false)
     */
    protected $y = '0';

    /**
     * @var float
     *
     * @ORM\Column(name="z", type="float", precision=10, scale=0, nullable=false)
     */
    protected $z = '0';

    /**
     * @var string
     *
     * @ORM\Column(name="world", type="string", length=255, nullable=false)
     */
    protected $world = 'world';

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=255, nullable=true)
     */
    protected $email = 'your@email.com';

    /**
     * @var integer
     *
     * @ORM\Column(name="isLogged", type="smallint", nullable=false)
     */
    protected $islogged = '0';


}
Helda
Člen | 10
+
0
-

Ahoj,

a co

$user->setUsername();

Koukni sem. Třeba z toho pochopíš proč to tak je: https://cs.wikipedia.org/wiki/CamelCase

Editoval Helda (16. 8. 2015 20:59)

Namespace
Člen | 81
+
+1
-

Dobrý den, mám problém a nevím si rady. Mohl by jste mi prosím někdo pomoci?

Jinak nikde v entitě nemáš metodu

SetUsername(), kterou voláš.

Jarek159
Člen | 23
+
0
-

Helda napsal(a):

Ahoj,

a co

$user->setUsername();

Notice

Undefined offset: 0

Helda
Člen | 10
+
0
-

Pošli sem více kódu. Nevím co ti háže Undefined offset: 0. Předpokládám, že tohle $values[„username“], ale nemám věšteckou kouli.

Filip Procházka
Moderator | 4668
+
0
-

@Jarek159 že by někdo volal setter bez argumentů by mě fakt nenapadlo :) Píšu si https://github.com/…e/issues/200 :)

$user->setUsername($values['username']);

Metoda SetUsername neexistuje a BaseEntita očekává naming setUsername jinak to ignoruje.

Azathoth
Člen | 495
+
0
-

I když metoda setUsername neexistuje, taka BaseEntity se o ni postará, protože ji nasimuluje pomocí magické metody __set.