Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

ghvinashvili's avatar

controller not defined

In controllers folder i created Admin folder and put CategoriesContrtoller.php. like that

controllers\Admin\CategoriesController.php

this is my route

Route::resource('admin/categories','admin\CategoriesController');

and this is categories/create.blade.php

{!! Form::open(['action' => 'Admin\CategoriesController@store']) !!}
    @include('categories/partial',array('submitButtontext' => 'Add'))
{!! Form::close() !!}

<script type="text/javascript">
    $('#select').select2({
        maximumSelectionLength: 1
    });
</script>

and error is

ErrorException in UrlGenerator.php line 561:
Action App\Http\Controllers\Admin\CategoriesController@store not defined. (View: C:\xampp\htdocs\laravel\resources\views\categories\create.blade.php) (View: C:\xampp\htdocs\laravel\resources\views\categories\create.blade.php)
in UrlGenerator.php line 561
at CompilerEngine->handleViewException(object(ErrorException), '1') in PhpEngine.php line 43
at PhpEngine->evaluatePath('C:\xampp\htdocs\laravel\storage\framework\views/942ef2442248bcc882f13cc6e8efaeef', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in CompilerEngine.php line 57
at CompilerEngine->get('C:\xampp\htdocs\laravel\resources\views/categories/index.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in View.php line 136
at View->getContents() in View.php line 104
at View->renderContents() in View.php line 78
at View->render() in Response.php line 44
at Response->setContent(object(View)) in Response.php line 202
at Response->__construct(object(View)) in Router.php line 1189
at Router->prepareResponse(object(Request), object(View)) in Router.php line 693
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Router.php line 694
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 661
at Router->dispatchToRoute(object(Request)) in Router.php line 619
at Router->dispatch(object(Request)) in Kernel.php line 214
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 43
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Kernel.php line 115
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84
at Kernel->handle(object(Request)) in index.php line 53
2/3
ErrorException in UrlGenerator.php line 561:
Action App\Http\Controllers\Admin\CategoriesController@store not defined. (View: C:\xampp\htdocs\laravel\resources\views\categories\create.blade.php)
in UrlGenerator.php line 561
at CompilerEngine->handleViewException(object(InvalidArgumentException), '1') in PhpEngine.php line 43
at PhpEngine->evaluatePath('C:\xampp\htdocs\laravel\storage\framework\views/81cdd1e5f0fdd17f431da8b3257050ae', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'obLevel' => '1', 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in CompilerEngine.php line 57
at CompilerEngine->get('C:\xampp\htdocs\laravel\resources\views/categories/create.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'obLevel' => '1', 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in View.php line 136
at View->getContents() in View.php line 104
at View->renderContents() in View.php line 78
at View->render() in 942ef2442248bcc882f13cc6e8efaeef line 7
at include('C:\xampp\htdocs\laravel\storage\framework\views\942ef2442248bcc882f13cc6e8efaeef') in PhpEngine.php line 39
at PhpEngine->evaluatePath('C:\xampp\htdocs\laravel\storage\framework\views/942ef2442248bcc882f13cc6e8efaeef', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in CompilerEngine.php line 57
at CompilerEngine->get('C:\xampp\htdocs\laravel\resources\views/categories/index.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in View.php line 136
at View->getContents() in View.php line 104
at View->renderContents() in View.php line 78
at View->render() in Response.php line 44
at Response->setContent(object(View)) in Response.php line 202
at Response->__construct(object(View)) in Router.php line 1189
at Router->prepareResponse(object(Request), object(View)) in Router.php line 693
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Router.php line 694
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 661
at Router->dispatchToRoute(object(Request)) in Router.php line 619
at Router->dispatch(object(Request)) in Kernel.php line 214
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 43
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Kernel.php line 115
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84
at Kernel->handle(object(Request)) in index.php line 53
1/3
InvalidArgumentException in UrlGenerator.php line 561:
Action App\Http\Controllers\Admin\CategoriesController@store not defined.
in UrlGenerator.php line 561
at UrlGenerator->action('Admin\CategoriesController@store') in FormBuilder.php line 822
at FormBuilder->getControllerAction('Admin\CategoriesController@store') in FormBuilder.php line 771
at FormBuilder->getAction(array('action' => 'Admin\CategoriesController@store')) in FormBuilder.php line 104
at FormBuilder->open(array('action' => 'Admin\CategoriesController@store')) in Facade.php line 210
at Facade::__callStatic('open', array(array('action' => 'Admin\CategoriesController@store'))) in 81cdd1e5f0fdd17f431da8b3257050ae line 1
at FormFacade::open(array('action' => 'Admin\CategoriesController@store')) in 81cdd1e5f0fdd17f431da8b3257050ae line 1
at include('C:\xampp\htdocs\laravel\storage\framework\views\81cdd1e5f0fdd17f431da8b3257050ae') in PhpEngine.php line 39
at PhpEngine->evaluatePath('C:\xampp\htdocs\laravel\storage\framework\views/81cdd1e5f0fdd17f431da8b3257050ae', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'obLevel' => '1', 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in CompilerEngine.php line 57
at CompilerEngine->get('C:\xampp\htdocs\laravel\resources\views/categories/create.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'obLevel' => '1', 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in View.php line 136
at View->getContents() in View.php line 104
at View->renderContents() in View.php line 78
at View->render() in 942ef2442248bcc882f13cc6e8efaeef line 7
at include('C:\xampp\htdocs\laravel\storage\framework\views\942ef2442248bcc882f13cc6e8efaeef') in PhpEngine.php line 39
at PhpEngine->evaluatePath('C:\xampp\htdocs\laravel\storage\framework\views/942ef2442248bcc882f13cc6e8efaeef', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in CompilerEngine.php line 57
at CompilerEngine->get('C:\xampp\htdocs\laravel\resources\views/categories/index.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'cats' => object(Collection), 'menu' => '', 'parent_cats' => array())) in View.php line 136
at View->getContents() in View.php line 104
at View->renderContents() in View.php line 78
at View->render() in Response.php line 44
at Response->setContent(object(View)) in Response.php line 202
at Response->__construct(object(View)) in Router.php line 1189
at Router->prepareResponse(object(Request), object(View)) in Router.php line 693
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Router.php line 694
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 661
at Router->dispatchToRoute(object(Request)) in Router.php line 619
at Router->dispatch(object(Request)) in Kernel.php line 214
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 43
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Kernel.php line 115
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84
at Kernel->handle(object(Request)) in index.php line 53
0 likes
10 replies
mstnorris's avatar

What does your CategoriesController look like?

The second line of the error you are getting is

Action App\Http\Controllers\Admin\CategoriesController@store not defined

@ghvinashvili it looks like there is no store method on your CategoriesController.

Also, I mentioned to you last night, that you will need to change your route as you have a lowercase "admin" whereas your directory uses "Admin". Thanks to @arabsight for pointing that out again.

ghvinashvili's avatar

look like

<?php namespace App\Http\Controllers\Admin;

use App\Cat;
use App\Http\Requests;
use App\Http\Requests\CatsReauests;
use App\Http\Controllers\Controller;

use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;

class CategoriesController extends Controller {


    public function index()
    {
        /*echo Auth::user()->id;
        User::find(Auth::user()->id)->roles()->attach(1);*/
        $parent_cats = Cat::lists('name','id');
        $cats = Cat::orderBy('order_id')->get();
        $catsArray = Cat::orderBy('order_id')->get()->toArray();
        $recarr = $this->recursive_array($catsArray);
        $menu = $this->menu_list($recarr);

        return view('categories.index', compact('cats','menu','parent_cats'));
    }

    public function recursive_array($array,$parent_id=0)
    {
        $menu_tree = array();
        foreach($array as $k => $v){

            if($v['parent_id']==$parent_id){
                $v['children'] = $this->recursive_array($array,$v['id']);
                $menu_tree[$k] = $v;
            }
        }
        return $menu_tree;
    }

    public function create()
    {
        $flash_massage = \Session::flash('flash_maassage', 'update menu list');
        $parent_cats = Cat::lists('name','id');
        $cats = Cat::orderBy('order_id')->get();
        $catsArray = Cat::orderBy('order_id')->get()->toArray();
        $recarr = $this->recursive_array($catsArray);
        $menu = $this->menu_list($recarr);

        return view('categories.index', compact('cats','menu','parent_cats'));
    }

    public function store(CatsReauests $request)
    {
        \Session::flash('flash_massage', ' sucssesfully added category');
        $cats = array();
        if(trim(empty($request->all()['parent_ids'][0]))) {
            $cats = [
                'name' => $request->all()['name'],
                'parent_id' =>0,
                'order_id' => Cat::max('order_id')+1,
            ];
        }else {

            $cats = [
                'name' => $request->all()['name'],
                'parent_id' =>$request->all()['parent_ids'][0],
                'order_id' => Cat::max('order_id')+1,
            ];
        }

        Cat::create($cats);
        return Redirect::back();

    }

    public function menu_list($array,  $child = FALSE)
    {
        $str = '';

        if (count($array)) {
            $str .= $child == FALSE ? '<ol class="sortable">' : '<ol>';

            foreach ($array as $item) {
                $str .= '<li id="list_' . $item['id'] .'">';
                $str .= '<div>' . $item['name'] .'</div>';

                // Do we have any children?

                if (isset($item['children']) && count($item['children'])) {

                    $str .= $this->menu_list($item['children'], TRUE);
                }

                $str .= '</li>' . PHP_EOL;
            }

            $str .= '</ol>' . PHP_EOL;
        }

        return $str;
    }

    public function order()
    {
        \Session::flash('flash_massage', ' Successfully  update menu list');
        $sortable = $_POST['sortable'];
        array_shift($sortable);
        foreach ($sortable as $order => $sort) {

            $arr = [
                'parent_id' => $sort['parent_id'],
                'order_id' => $order,
            ];
            $cats = Cat::findOrFail($sort['item_id']);
            $cats->update($arr);
        }

        //return view('categories.order',compact('sortable'));
    }
    public  function edit($id)
    {
        $result = Cat::findOrFail($id);

        $parent_cats = Cat::lists('name','id');

        $cats = Cat::orderBy('order_id')->get();
        $catsArray = Cat::orderBy('order_id')->get()->toArray();
        $recarr = $this->recursive_array($catsArray);
        $menu = $this->menu_list($recarr);

        return view('categories.index', compact('cats','menu','parent_cats','result'));

    }

    public function update($id,CatsReauests $request)
    {
        \Session::flash('flash_maassage', 'Successfully update categories list');

        $cat = Cat::findoRfail($id);

        $arr = [
            'name' =>$request->input('name'),
        ];

        $cat->update($arr);
        return Redirect::back();
    }

    public function delete($id)
    {


        $oneCat = Cat::find($id);
        if($this->has_child($id) and $this->has_parent($id)) {
            foreach(Cat::all()->where('parent_id',$oneCat->id) as $cats) {
                    $arr = [
                       'parent_id' => $this->has_parent($id),
                    ];

                $cats->update($arr);
            }
        }else if($this->has_parent($id)) {
            foreach(Cat::all()->where('parent_id',$oneCat->id) as $cats) {
                $arr = [
                    'parent_id' => 0,
                ];

                $cats->update($arr);
            }
        }else if($this->has_child($id)) {
            foreach(Cat::all()->where('parent_id',$oneCat->id) as $cats) {
                $arr = [
                    'parent_id' => $this->has_parent($id),
                ];

                $cats->update($arr);
            }
        }

        Cat::destroy($id);
        return Redirect::back();
    }

    public function has_child($id)
    {

        foreach (Cat::all() as $arr) {
            if($arr->parent_id == $id){
               return $arr->id;
            }
        }
    }

    public function has_parent($id)
    {
        $parent_id = Cat::find($id)->parent_id;

        if(isset(Cat::find($parent_id)->id)) {
            return Cat::find($parent_id)->id;
        }
    }


}

mstnorris's avatar

Your route isn't set up correctly.

Run php artisan route:list and then paste the output here so I can see.

arabsight's avatar
Level 10
'admin\CategoriesController' should be 'Admin\CategoriesController' in your routes file
2 likes
ghvinashvili's avatar

@mstnorris my route is

Route::post('admin/categories/order','admin\CategoriesController@order');
Route::resource('admin/categories','admin\CategoriesController');
Route::get('admin/categories/{categories}/delete','admin\CategoriesController@delete');
mstnorris's avatar

@ghvinashvili that isn't the output from the command I said to run.

Open up your terminal and run

php artisan route::list

You will get a big table of all of the routes in your project.

Please or to participate in this conversation.