Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Frameworki _ [Symfony][Symfony2]requires that you provide a value for the "$profilesql" argument.

Napisany przez: szypi1989 20.08.2018, 07:57:38

  1. Witam . Otóż mam problem. Podczas wykonywania przekierowania:
  2. return $this->forward('AppBundle:User:profileinfo', http://www.php.net/array(
  3. 'user' => $this->get('security.token_storage')->getToken()->getUser()
  4. ));


Pokazuje mi się błąd:
Controller "AppBundle\Controller\UserController::profileinfoAction()" requires that you provide a value for the "$profilesql" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or because there is a non optional argument after this one.

Nie Chce mi po prostu wstrzyknąć zależności podczas przekierowania. Jak to zrobić aby wstrzykneło?
To jest moja akcja z argumentami w kontrolerze:
  1. public function profileinfoAction(Request $request, $user, ProfileSql $profilesql) {}

I jak wstrzyknąć tą usługę ProfileSql $profilesql do przekierowania?
Próbowałem tak:
  1. return $this->forward('AppBundle:User:profileinfo', http://www.php.net/array(
  2. 'user' => $this->get('security.token_storage')->getToken()->getUser(), 'ProfileSql' => $profilesql
  3. ));

No ale niestety nie idzie.

Napisany przez: robert0770 20.08.2018, 14:06:44

ProfileSql to encja?

Raczej chodzi o to aby ParamConverter wiedział jaki obiekt encji wyciągnąć więc popatrz na route (i z tego pomyśl co przekazać do forward)

ty nie przekazujesz w ten sposób obiektu do aktualnego requesta tylko "budujesz" nowy link i to jest nowy request

Napisany przez: szypi1989 20.08.2018, 21:50:07

ProfileSql to obiekt klasy , który jest wstrzykiwany. To zależność. Wyżej jest wszystko wyjaśnione. To może mi powiesz jak to zrobić z tym route aby to tam wstrzyknąć

Napisany przez: robert0770 21.08.2018, 14:14:07

Co to za obiekt? jak nie encja to moze jakis service? ale to od tego masz cointainera zeby z niego korzystać

w argumentach controllera dajesz tylko to co masz w route, nic wiecej nie potrzeba.

Kontrolerów sie przeważnie nie używa jak innych metod

po za tym co Ci szkodzi zrobić zwykły redirect?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)