Laravel : BadMethodCallException Method [store] does not exist

12,683

The error message tells you what the problem is: the method called store() doesn’t exist. Add it to your controller:

<?php
namespace admin;

use Illuminate\Support\Facades\View;
use App\Services\Validators\ArticleValidator;
use Input, Notification, Redirect, Sentry, Str;

class AdminController extends \BaseController {

    public function index()
    {
        // leave code as is
    }

    public function store()
    {
        // this is your NEW store method
        // put logic here to save the record to the database
    }

}

A couple of points:

  • Use camel-casing for name spaces (i.e. namespace admin should be namespace Admin)
  • Read the Laravel documentation on resource controllers: http://laravel.com/docs/controllers#resource-controllers
  • You can also automatically generate resource controllers with an Artisan command. Run $ php artisan make:controller ItemController, replacing ItemController with the name of the controller, i.e. ArticleController or UserController.
Share:
12,683
Meera
Author by

Meera

Updated on June 04, 2022

Comments

  • Meera
    Meera almost 2 years

    I just downloaded and started a new project with the latest Laravel 4.2. When trying to submit a form I get the following error : BadMethodCallException Method [store] does not exist

    Here are my files : controller - admin/AdminController

    <?php
      namespace admin;
    
      use Illuminate\Support\Facades\View;
      use App\Services\Validators\ArticleValidator;
      use Input, Notification, Redirect, Sentry, Str;
    
      class AdminController extends \BaseController {
    
          public function index() {
    
              if (Input::has('Login')) {
    
                  $rules = array(
                      'email' => 'required',
                      'password' => 'required|min:3',
                      'email' => 'required|email|unique:users'
                  );
    
                  $validator = Validator::make(Input::all(), $rules);
    
                  if ($validator->fails()) {
                      return Redirect::to('admin\AdminController')->withErrors($validator);
    
                  } else {
    
                      // redirect
                      Session::flash('message', 'Successfully created user!');
                      return Redirect::to('admin\AdminController');
                  }
              }
              $data['title'] = ADMIN;
              return View::make('admin.index', $data);
          }
      }
    

    View page - admin/index.blade.php

    <div class="container">
            {{ Form::open(array('url' => ADMIN,'id' => 'login')) }}
    
                <div id="icdev-login-wrap">
    
    
                <div class="raw align-center logoadmin">{{ HTML::image('images/logo.png') }}</div>
                <div id="icdev-login">
                <h3>Welcome, Please Login</h3>
    
    
    
    
                    <div class="mar2_bttm input-group-lg"><input type="text" class="form-control loginput" placeholder="Email" name="email"></div>
    
                    <div class="mar2_bttm input-group-lg"><input type="password" class="form-control loginput" placeholder="Password" name="password"></div>
                    <div ><input type="submit" class="btn btn-default btn-lg btn-block cus-log-in" value="Login" /></div>
                    <div class="row align-center forgotfix">
    
                      <input type="hidden" name="Login" value="1">
                    </div>
                    </div>
                    <div>
    
                    </div>
                </div>
                {{ Form::close() }}
                </div>