Matrix12
7.11.2015, 09:03:10
Witam,
prowadzę projekt w SF2 i dodałem nową encje chciałem zrobić doctrine:schema:update --force a tu błąd z informacją że jakaś tabela istnieje.. problem w tym że takiej tabeli nigdy nie utworzyłem, nie wiem skąd ją on zna. Jednak zmieniłem bazę danych na inna by dalej kontynuować no i jest problem nadal jest to samo. Nowa baza a on nadal że ta tabela istnieje.. Zrobiłem doctrine:cache:clear-metadata, doctrine:cache:clear-result ale nadal to samo. Nie wykorzystuje tej tabeli nigdzie, nawet nie wiem skąd ja on ma,
a co z doctrine:schema:validate?
Sprawdź czy nie masz w encjach w @table gdzieś zdublowanej nazwy, szczególnie w tej nowej.
Matrix12
7.11.2015, 11:53:17
Doctrine validate daje to : [Doctrine\DBAL\Schema\SchemaException] i że tabela istnieje. Sprawdzałem i nic.. Właśnie nie wiem dlaczego taki jest błąd..
kpt_lucek
7.11.2015, 12:02:48
To znaczy, że: w projekcie istnieje już ORM'owa implementacja w/w tabeli
Matrix12
7.11.2015, 12:08:47
Właśnie problem w tym że nie istnieje. Nie mam żadnej encji która by reprezentowała tą tabele, ba nawet w samej bazie jej nie ma..
Przeszukałem cały projekt tej frazy czy coś podobnego co mógłbym jakoś sprawdzić. Niestety nic.
kpt_lucek
7.11.2015, 12:52:52
Ręcznie wywal cache
Matrix12
8.11.2015, 21:39:24
Sprawdzę jeszcze asocjacje bo tutaj może być błąd
Pogrzebałem w asercjach i jakoś się udało nie krzyczy błędem. Problem teraz mam z peryzystencją. Problem w tym że to bardzo prosty skrypt...
Pobiera dane z zewnętrznego serwisu i zapisuje. Sprawdziłem $products jest tablicą nie jest ona pusta.. ale rekordy się nie zapisują. Próbowałem z przeniesieniem flusha to foreacha ale też nic.. wcześniej ten kod zapisywał.. Co w nim jest nie tak?
foreach($products as $product){
$product = new Product;
$product->setName($product);
$product->setCreatedAt(new \DateTime());
$product->setUpdatedAt(new \DateTime());
try{
$em->persist($product);
}catch(\Doctrine\DBAL\DBALException $e){
throw new Exception($e->getMessage());
}
try{
$em->flush();
$em->commit();
}catch(\Doctrine\DBAL\DBALException $e){
$em->rollback();
}
//reszta kodu
destroyerr
11.11.2015, 10:36:14
Trudno stwierdzić co jest nie tak, zwłaszcza, że przechwytujesz wyjątek i w żaden sposób go nie obsługujesz.
nospor
11.11.2015, 11:07:01
foreach($products as
$product){
$product = new Product;
$product->setName(
$product);
Naprawde nie widzisz ze nadpisujesz zmienna $product? Rada na przyszlosc. Nazywaj zmienne roznie
Matrix12
11.11.2015, 12:14:52
To jest example kod, i faktycznie tutaj dwa razy napisałem produkt. Poradziłem sobie z tym także dzięki. Problemem było połączenie z tabelą.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.