I am using FOSOAuthServerBundle
and Symfony
and I am getting error following error:
Could not load type "travel_oauth_server_auth"
500 Internal Server Error - Exception
Here is my service.xml
file, as I am new to Symfony so I don't know why I am get this error.
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="travel_oauth_server.authorize.form_type" class="travel\HomeBundle\Form\Type\AuthorizeFormType">
</service>
<service id="travel_oauth_server.authorize.form" factory-method="createNamed" factory-service="form.factory" class="Symfony\Component\Form\Form">
<argument type="service" id="travel_oauth_server.authorize.form_type" />
<argument>%travel_oauth_server_auth%</argument>
</service>
<service id="travel_oauth_server.authorize.form_handler" class="travel\HomeBundle\Form\Handler\AuthorizeFormHandler" scope="request">
<argument type="service" id="travel_oauth_server.authorize.form" />
<argument type="service" id="request" />
<argument type="service" id="security.context" />
<argument type="service" id="fos_oauth_server.server" />
</service>
</services>
</container>
Here is the form that I have created AuthorizeFormType
:
<?php
namespace Travel\HomeBundle\Form\Type;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\AbstractType;
class AuthorizeFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('allowAccess', 'checkbox', array(
'label' => 'Allow access',
));
}
public function getDefaultOptions(array $options)
{
return array('data_class' => 'Travel\HomeBundle\Form\Model\Authorize');
}
public function getName()
{
return 'travel_oauth_server_authorize';
}
}
Update in config file according the reference question which is possibly duplication but i am still getting the same error
parameters:
travel_oauth_server_auth.class: Travel\HomeBundle\Form\Type\AuthorizeFormType
services:
travel_oauth_server_auth:
class: %travel_oauth_server_auth%
I honestly think all you need to do is add
<service id="travel_oauth_server_auth" class="%travel_oauth_server_auth.class%" scope="request">
...
</service>
To your XML and get rid of the service definition in your YAML file, also I see 2 types of namespace roots travel vs Travel. You might still have to tag the service, see http://symfony.com/doc/current/book/forms.html#defining-your-forms-as-services
parameters:
travel_oauth_server_auth.class: Travel\HomeBundle\Form\Type\AuthorizeFormType
services:
travel_oauth_server_auth:
class: %travel_oauth_server_auth%
Was not correct to begin with, as you'd want
parameters:
travel_oauth_server_auth.class: "Travel\HomeBundle\Form\Type\AuthorizeFormType"
services:
travel_oauth_server_auth:
class: %travel_oauth_server_auth.class%
The error you are receiving
ParameterNotFoundException: The service "travel_oauth_server.authorize.form" has a dependency on a non-existent parameter "travel_oauth_server_auth" :(
is because of
<service id="travel_oauth_server.authorize.form" factory-method="createNamed" factory-service="form.factory" class="Symfony\Component\Form\Form">
<argument type="service" id="travel_oauth_server.authorize.form_type" />
<argument>%travel_oauth_server_auth%</argument>
</service>
The second passed argument in here is not found, and it really tries hard to tell you so :-) ( compared to any other "framework").