unserialize error offset – při přihlašování
- ondrusu
- Člen | 118
Ahoj, mám takový dotaz. ZDE scren jedné chyby.
unserialize() Error at offset 1314 of 1315 bytes.
Děje se to občas když se chci přihlásit, ale né uplně po každé.
Objeví se tahle chyba, refreshnu stránku a znova se přihlásím a vše je
ok.
Nevíte proč se to může nastávat tahle chyba??
- ondrusu
- Člen | 118
to předpokládám že asi nějakou lepší chybu né??
Tady ještě jednou ta chyba co jsem zachitil:
ErrorException #098
message protected => "unserialize(): Error at offset 1313 of 1314 bytes"
string private => ""
code protected => 0
file protected => "/var/www/html/vendor/kdyby/doctrine/src/Kdyby/Doctrine/Entities/SerializableMixin.php"
line protected => 98
trace private => array (20)
previous private => NULL
severity protected => 8
context => array (2)
object => App\Model\Entities\UserAttribute #01
id protected => NULL
edited protected => NULL
edited_by protected => NULL
user protected => NULL
user_attribute_param protected => NULL
user_attribute_type protected => NULL
serialized => "a:6:{s:2:"id";i:1;s:6:"edited";N;s:9:"edited_by";N;s:4:"user";r:22;s:20:"user_attribute_param";C:65:"Kdyby\\GeneratedProxy\\__CG__\\App\\Model\\Entities\\Us ... "
skippable => TRUE
- iguana007
- Člen | 970
Navrhuji, aby si odpověděl na 2× položený dotaz od @CZechBoY ,
jinak se asi dále nepohneme :)
Tj. když si dumpneš velikost dat, co se tam snažíš uložit, tak je sloupec
v databázi (serialized?), kde tato data ukládáš, dostatečně velký na to,
aby tato data pobral? Není třeba jej zvětšit, či změnit jeho typ na něco
jiného?
- ondrusu
- Člen | 118
Ono se tam ukládá jen login info a to proběhlo OK, a tady ta chyba s tou
serializací někdy se zobrazí někdy přihlášení proběhne ok.
Ono to skončí až když se provádí SQL dotaz na user_attribute_type , které se načítají do entity
User
.
Mám user_attribute
a user_attribute_type
a user_attribute_param
V user_attribute_type jsou data ve tvaru
name: LANG
validation: {"field": "select", "name": "lang", "class": "form-control"}
active: 1
Myslíte že může dělat problémy ten JSON?
- tak tím to bohužel není, ta hláška se zobrazuje jakmile promažu cache
Editoval ondrusu (12. 4. 2016 21:50)
- ondrusu
- Člen | 118
Tak bádáním a výzkumem jsem zjistil, že mi doctrine nenačte další
entity.
Mám tabulky user_atributte
, user_attribute_type
,
user_attribute_param
.
*_type
jsou typy atributů (lang, theme apod.)*_param
jsou parametry typů (en, cs, square apod.)
a tabulka user_attribute
to dává dohromady (uživatel ten a
ten má atrbibut LANG a hodnotu CS)
class UserAttribute extends BaseEntity {
/**
* Sloupec pro ID atributu uživatele.
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
protected $id;
/**
* Sloupec s datem editace daného atributu.
* @ORM\Column(type="datetime")
*/
protected $edited;
/**
* Sloupec s ID uživatele, který editoval hodnotu daného atributu.
* @ORM\Column(type="integer")
*/
protected $edited_by;
/* ------------------------- Association Mapping ------------------------ */
/**
* Namapovaná vazba nastavení účtu uživatele (UserAttribute)N:1(User) na tabulku uživatelů.
* @ORM\ManyToOne(targetEntity="User", inversedBy="ac_user_attribute")
* @ORM\JoinColumn(name="user_id")
*
* @var User
*/
protected $user;
/**
* Namapovaná vazba nastavení účtu uživatele (UserAttribute)N:1(UserAttributeType) na tabulku Uživatelských Typů Atributu.
* @ORM\ManyToOne(targetEntity="UserAttributeParam", inversedBy="ac_user_attribute", fetch="EAGER")
* @ORM\JoinColumn(name="param_id")
*/
protected $user_attribute_param;
/**
* Namapovaná vazba nastavení účtu uživatele (UserAttribute)N:1(UserAttributeType) na tabulku Uživatelských Typů Atributu.
* @ORM\ManyToOne(targetEntity="UserAttributeType", inversedBy="ac_user_attribute", fetch="EAGER")
* @ORM\JoinColumn(name="type_id")
*/
protected $user_attribute_type;
}
a Entita uživatelů
class User extends BaseEntity {
.
.
/**
* Namapovaná vazba uživatele 1:N na tabulku s nastavením účtu uživatele.
* @ORM\OneToMany(targetEntity="UserAttribute", mappedBy="user")
*/
protected $ac_user_attribute;
/* --------------------------- Entity Methods --------------------------- */
/** Konstruktor s inicializací objektů pro vazby mezi entitami. */
public function __construct() {
parent::__construct();
$this->ac_login_info = new ArrayCollection();
$this->ac_user_attribute = new ArrayCollection();
}
User
entita má načíst atributy uživatele, atributy
uživatele by měli načíst svoje parametry a typy. Ale bohužel parametry ani
typy už se nenačtou (když smažu cache tak to hlásí tu chybu s unserialize
ale pak to je ok)
Jak má tedy ten vzah vypadat? Co mám špatně na té entitě pro user
attribute??