Laravel:BadMethodCallException方法[store]不存在

时间:2014-09-10 13:39:00

标签: php laravel-4

我刚下载并使用最新的Laravel 4.2开始了一个新项目。在尝试提交表单时,我收到以下错误:BadMethodCallException方法[store]不存在

以下是我的文件: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);
      }
  }

查看页面 - 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>

1 个答案:

答案 0 :(得分:2)

错误消息告诉您的问题是什么:名为store()的方法不存在。将其添加到您的控制器:

<?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
    }

}

有几点:

  • 使用camel-casing作为名称空间(即namespace admin应为namespace Admin
  • 阅读资源控制器上的Laravel文档:http://laravel.com/docs/controllers#resource-controllers
  • 您还可以使用Artisan命令自动生成资源控制器。运行$ php artisan make:controller ItemController,将ItemController替换为控制器名称,即ArticleControllerUserController