# Laminas\\Form extension not resolving in IndexController

**URL:** <https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780>\
**Category:** Components & MVC\
**Tags:** laminas-form, laminas-mvc\
**Created:** [August 12, 2020, 4:09pm UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780 "2020-08-12T16:09:28Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Siddhartha\_Dhamankar](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/siddhartha_dhamankar/32/771_2.png) [@Siddhartha\_Dhamankar](https://discourse.laminas.dev/u/Siddhartha_Dhamankar)\
**Post date:** [August 12, 2020, 4:09pm UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/1 "2020-08-12T16:09:28Z")

</div>

I added a Laminas\Form extension called AddjobForm in the ‘module\Application\src\Form’ folder with namespace Application\Form

When I try to create a new AddjobForm() in the IndexController of Application module I get the error  
Class Application\Form\AddjobForm not found.

I have added the use namespace to Index controller as well. please help.

---

<div class="post-metadata">

**Author:** ![Andy](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.laminas.dev/u/Andy)\
**Post date:** [August 14, 2020, 10:56am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/2 "2020-08-14T10:56:24Z")

</div>

Hello 🙂

Do you have a ServiceConfig for Application\Form\AddjobForm in Module.php?

```auto
public function getServiceConfig(): array
{
    return [
        \Application\Form\AddjobForm::class => function( $sm ) {
             return new \Application\Form\AddjobForm(
                #You can use $sm->get(\Other\Class::class) for DI in your constructor.
            );
        }
    ];
}

```

I hope that it is what you mean. I am a Newbie in Laminas but it is a great framework

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [August 14, 2020, 11:14am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/3 "2020-08-14T11:14:26Z")

</div>

In the documentation of laminas-form you can found the following description: [Application Integration – Usage in a laminas-mvc Application](https://docs.laminas.dev/laminas-form/application-integration/usage-in-a-laminas-mvc-application/)

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [August 14, 2020, 11:30am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/4 "2020-08-14T11:30:52Z")

</div>

Hello and welcome to the forums! 😃

> [@Siddhartha\_Dhamankar](#):
>
> I added a Laminas\Form extension called AddjobForm in the ‘module\Application\src\Form’ folder with namespace Application\Form

Please provide the filename and the full code of your form class, this allows us to check for problems. Thanks!

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [August 14, 2020, 11:33am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/5 "2020-08-14T11:33:20Z")

</div>

> [@Andy](#):
>
> Do you have a ServiceConfig for Application\Form\AddjobForm in Module.php?

Not needed here and also should avoided. If no separate factory for the form is needed then you need no extra registration. See the description for application integration from above for more details.

---

<div class="post-metadata">

**Author:** ![Siddhartha\_Dhamankar](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/siddhartha_dhamankar/32/771_2.png) [@Siddhartha\_Dhamankar](https://discourse.laminas.dev/u/Siddhartha_Dhamankar)\
**Post date:** [August 15, 2020, 5:35am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/6 "2020-08-15T05:35:51Z")

</div>

I decided to use the Application module itself instead of creating a separate module. This was done just for study purposes. And I feel the issue I am facing has something to do with that.  
I have not registered a factory for this since I am directly using the _new_ operator to create the AddjobForm instance. Please refer to the screenshot of the error message below. It appears to be dumping code from the AddjobForm class.

## Error

File:  
C:\Users\Siddhartha\OneDrive\code\laminasmassmailer\module\Application\src\Controller\IndexController.php:39

Message:  
Class ‘Application\Form\AddjobForm’ not found

## Code for Application\src\Form\AddjobForm.php

```auto
namespace Application\Form;
use Laminas\Form\Form;

class AddjobForm extends Form
{

	public function __construct($name = null)
	{

		parent::__construct('jobsummary');

		$this->add([
			'name' => 'jobid',
			'type' => 'hidden',
		]);
              ... 

```

## Code for Application\src\Controller\IndexController.php

I was expecting that IndexController would be able to resolve the AddjobForm class especially since it is explicitly declared with the use keyword.

```auto
namespace Application\Controller;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use Laminas\Form\Factory;
use Application\Model\JobsummaryTable;
use Application\Model\Jobsummary;
use Application\Form\AddjobForm;

class IndexController extends AbstractActionController
{

    private $jobsummaryTable;

    public function __construct(JobsummaryTable $jobsummarytable)
    {
        $this->jobsummaryTable = $jobsummarytable;
    }

    public function indexAction()
    {
        return new ViewModel([
            'jobsummaries' => $this->jobsummaryTable->fetchAll(),
        ]);
    }

    public function addjobAction()
    {
        $form = new AddjobForm(); -- this is where i get the error. this is line no. 39
        $request = $this->getRequest();
        if(!$request->isPost())
        {
            //blank form
            return ['form' => $form];
        } 
        ...

```

## Screenshot of error message

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/zendframework/original/1X/e242f9ba433c0b3745dc7b652a38d2665fa06d4a.png)

---

<div class="post-metadata">

**Author:** ![Siddhartha\_Dhamankar](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/siddhartha_dhamankar/32/771_2.png) [@Siddhartha\_Dhamankar](https://discourse.laminas.dev/u/Siddhartha_Dhamankar)\
**Post date:** [August 15, 2020, 5:57pm UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/7 "2020-08-15T17:57:50Z")

</div>

I figured this out. There was a syntactical error in the phtml which was strangely causing this error.

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [August 16, 2020, 5:41am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/8 "2020-08-16T05:41:13Z")

</div>

> [@Siddhartha\_Dhamankar](#):
>
> I figured this out.

Great! 👍

> [@Siddhartha\_Dhamankar](#):
>
> There was a syntactical error in the phtml which was strangely causing this error.

Which error? I would like to reproduce the problem.

---

<div class="post-metadata">

**Author:** ![Andy](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.laminas.dev/u/Andy)\
**Post date:** [August 20, 2020, 9:50am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/9 "2020-08-20T09:50:02Z")

</div>

> [@Siddhartha\_Dhamankar](#):
>
> ```auto
> $this->add([
> 'name' => 'jobid',
> 'type' => 'hidden',
> ]);
> 
> ```

Is ‘type’ =\> hidden ok???

```auto
$this->add(
    [
        'name' => 'jobid',
        'type' => Laminas\Form\Element\Text::class,
        'attributes' => [
            'hidden' => true,
        ],
    ]
);

```

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [August 20, 2020, 9:55am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/10 "2020-08-20T09:55:15Z")

</div>

> [@Andy](#):
>
> Is ‘type’ =\> hidden ok???

Sure, it is a separate element: [Laminas\Form\Element\Hidden](https://docs.laminas.dev/laminas-form/element/hidden/)

---

<div class="post-metadata">

**Author:** ![Andy](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.laminas.dev/u/Andy)\
**Post date:** [August 20, 2020, 10:29am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/11 "2020-08-20T10:29:00Z")

</div>

Ah, ok, I found Hidden Element just. 😃  
But is there an alias ‘hidden’ for Hidden::class?

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [August 20, 2020, 10:34am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/12 "2020-08-20T10:34:15Z")

</div>

> [@Andy](#):
>
> But is there an alias ‘hidden’ for Hidden::class?

Correct. The `FormElementManager` is a [plugin manager](https://docs.laminas.dev/laminas-servicemanager/plugin-managers/) and contains all references:

> <https://github.com/laminas/laminas-form/blob/e89a40de00996a36a594bd77e02b5501dcb624f1/src/FormElementManager/FormElementManagerV3Polyfill.php#L44-L271>

The `Form` class uses the `FormElementManager` via the factory when you add an element with the specification in an array.

---

<div class="post-metadata">

**Author:** ![Andy](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.laminas.dev/u/Andy)\
**Post date:** [August 20, 2020, 11:00am UTC](https://discourse.laminas.dev/t/laminas-form-extension-not-resolving-in-indexcontroller/1780/13 "2020-08-20T11:00:59Z")

</div>

Perfect. I learn so much here. Thanks. 🙂
