Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Symfony3] Błąd konstruktora, serwisu w Symfony3, po próbie stworzenia serwisu w sf3 ciągle mam błąd opisany we wpisie
wluczykuj
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


Cześć, co może być nie tak?
w moim kodzie mam osobno formularz, kontroler i serwis


formularz: https://pastebin.com/ERU6hChv
kontroler: https://pastebin.com/FMzJ493v
serwis: https://pastebin.com/Cd7FL333

niestety mam błąd:

"Warning: Missing argument 1 for AppBundle\Form\PrzydzialType::__construct(), called in G:\Xampp\htdocs\projects\godziny_inz\vendor\symfony\symfony\src\Symfony\Component\Form\FormRegistry.php on line 85 and defined"

Stack Trace:

"in src\AppBundle\Form\PrzydzialType.php at line 64"

return 'appbundle_przydzial';
}

public function __construct($session)
{
$this->session = $session; <----------64 linia
Go to the top of the page
+Quote Post
ohm
post
Post #2





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


W kontrolerze zamiast
  1. $form = $this->createForm('AppBundle\Form\PrzydzialType', $przydzial);

wrzuć
  1. $form = $this->createForm('app.form.przydzial_type', $przydzial);
Go to the top of the page
+Quote Post
wluczykuj
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


Okej, zmienilem i mam taki blad:

Could not load type "app.form.przydzial_type"

Stack Trace:

in vendor\symfony\symfony\src\Symfony\Component\Form\FormRegistry.php at line 87

if (class_exists($name) && in_array('Symfony\Component\Form\FormTypeInterface', class_implements($name))) {
$type = new $name();
} else {
throw new InvalidArgumentException(sprintf('Could not load type "%s"', $name)); <---linia 87
}
}

a w vendorze nie bardzo chce kombinowac bez konsultacji z kims bardziej doswiadczonym

Ten post edytował wluczykuj 16.04.2017, 15:35:06
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




vendorow sie nie dotyka i tyle.

W swoim pierwszy kodzie daj moze poprostu
PrzydzialType::class
zamiast tekstowej nazwy klasy. Wszystko oprocz tego robisz zgodnie z dokumentacja


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ohm
post
Post #5





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


sprawdź z konsoli czy masz na pewno dobrze zarejestrowany formularz
app/console debug:container
Go to the top of the page
+Quote Post
wluczykuj
post
Post #6





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


Prawdopodobnie robię coś nie tak:

https://pastebin.com/4vZShwQ7


ok odpalilem te komende i jak mogę sprawdzic poprawnosc?

EDIT: przejrzalem cala liste form.type i nie bylo czegos takiego jak form.type.przydzial czyli tak jak w serwisie:

  1. # app/config/services.yml
  2. services:
  3. app.form.type.przydzial:
  4. class: AppBundle\Form\PrzydzialType
  5. arguments: ['@session']
  6. tags:
  7. - { name: form.type }


Ten post edytował wluczykuj 16.04.2017, 16:32:48
Go to the top of the page
+Quote Post
ohm
post
Post #7





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


Wygląda jak by serwis nie był dołączany, cache czyściłeś? Pracujesz na wersji dev?
Go to the top of the page
+Quote Post
wluczykuj
post
Post #8





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


no czyszczę cache, to jakiej mam dokladnie komendy użyć do czyszczenia?
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wracajac do mojej odpowiedzi to mi chodzilo bys dodac to ::class w kontrolerze tam gdzie wolasz createForm


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wluczykuj
post
Post #10





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


Kiedy daję w kontrolerze

  1. $form = $this->createForm('PrzydzialType::class', $przydzial);


lub

  1. $form = $this->createForm(PrzydzialType::class, $przydzial);


to mimo wszystko mam dla powyzszych kodow bledy odpowiednio jak wyżej:


Could not load type "PrzydzialType::class" i Could not load type "AppBundle\Controller\PrzydzialType"
Go to the top of the page
+Quote Post
ohm
post
Post #11





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


W przypadku tego drugiego, to w grupie use dodaj (pierwszy jest nieprawidłowy wink.gif )
use AppBundle\Form\PrzydzialType ewentualnie

$form = $this->createForm(\AppBundle\Form\PrzydzialType::class, $przydzial);

Ten post edytował ohm 16.04.2017, 20:12:26
Go to the top of the page
+Quote Post
wluczykuj
post
Post #12





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


Coś faktycznie uległo zmianie:

mam inny blad: You have requested a non-existent service "app.form.type.przydzial"

czy ja aby na pewno dobrze mam to ponazywane bo przyznam ze już nie jestem pewien, rzuć okiem proszę, sorry ze o taka podstawe pytam ale mecze sie z tym juz ktorys dzien:

  1. services:
  2.  
  3. app.form.type.przydzial:
  4. class: AppBundle\Form\PrzydzialType
  5. arguments: ['@session']
  6. tags:
  7. - { name: app.form.type.przydzial }



i wycinek kontrolera: http://imgur.com/a/bUh1M

Ten post edytował wluczykuj 16.04.2017, 20:18:40
Go to the top of the page
+Quote Post
ohm
post
Post #13





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


Sprawdz czy w config.yml masz importowany services.yml, ewentualnie przerzuć te deklaracje do configu samego bundla w AppBundle/Resources/services.yml

Co do czyszczenia cache, to app/console cache:clear lub (lub bin/console - zalezy jaką wersję symfony masz)

Ten post edytował ohm 16.04.2017, 20:28:11
Go to the top of the page
+Quote Post
wluczykuj
post
Post #14





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


w config.yml mam import services.yml,

a nazwa serwisu ktora potem daje w formularzu się zgadza?


EDIT: ciągle ten sam błąd, robie zgodnie ze wskazowkami, czyszcze cache, może czegoś nie zauważam, gdzies popełniam błąd?
Go to the top of the page
+Quote Post
ohm
post
Post #15





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


Wrzuć gdzieś paczke z kodem to sprawdzę
Go to the top of the page
+Quote Post
wluczykuj
post
Post #16





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


w całosci to jest dosc obszerne wiec jakie pliki wybrac do wysłania?
Go to the top of the page
+Quote Post
ohm
post
Post #17





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


najlepiej wszystko bez app/config/parameters.yml, app/cache (lub var/), no i bez vendor oczywiście.
Go to the top of the page
+Quote Post
wluczykuj
post
Post #18





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


Ok, podesłałem w wiadomości (na skrzynke) kod i bardzo proszę zobacz co z tym serwisem nie działa?

ostatecznie services.yml mam w dwóch miejsach w app/config i w src/appbundle/resources/config

gdyby brakowało jakiś plików to prosze o taką informację



EDIT:

W tym kodzie ustawiam sesję (zmienna sesyjna, ktorej chce potem uzywac w dalszej czesci aplikacji):
https://pastebin.com/KiZtLgmh

i potem gdy np. robie dump tej odebranej sesji w metodzie:
  1. public function listAction(Request $request){
  2. $plachta = $request->getSession()->get('plachta');


to mam wynik dumpa taki:
Zdjęcie1
http://imgur.com/a/7woPV i to do tej pory się zgadzalo




natomiast w poniższym kodzie w linijce 25 jest brana sesja (chce tę samą co ustawiam w pierwsyzm podeslanym linku) i gdy robie dump($session) to mam taki wynik jak ponizej, a powinien byc chyba taki jak na wczesniejszym zdjęciu.

https://pastebin.com/VckDkmAR

http://imgur.com/a/kkTuP


Jak odebrać te sesje jak w listAction() zeby bylo jak na Zdjęciu1 i to na niej pracowac? Czyli jak zrobić te pole w formularzu
->addPracownik('pracownik') aby byla to dropdown lista z listą pracowników tylko takich, którzy mają identyfikator FK $idPlachta równy tej sesji co przychodzi, (czyli w zalezności jakai identyfikator przyjdzie w sesji tacy ludzie mają się wyświetlac w dropdown list)

Ten post edytował wluczykuj 18.04.2017, 00:04:25
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:09