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 benamespace 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
, replacingItemController
with the name of the controller, i.e.ArticleController
orUserController
.
Author by
Meera
Updated on June 04, 2022Comments
-
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>