使用资源控制器的存储方法的Laravel 5.1 MethodNotAllowedHttpException

时间:2016-02-08 00:56:01

标签: php rest laravel laravel-5.1

我正在尝试使用资源控制器向数据库添加记录,但是,我收到MethodNotAllowedHttpException错误。我已经经历了几个类似的问题,例如thisthat,但似乎没有人回答我。这是我的代码:

routes.php文件

Route::resource('animals', 'AnimalsCtrl');

我模特的一部分。

protected $table='animals';
protected $primaryKey='name';

protected $fillable = [
    'name', 'type'
];

控制器中的商店方法。

   public function store(Request $request)
    {
        $creature = $request->all();
        Animal::create($creature);

    }

这是表格。

        <form method="post">
            <div class="small-6 small-centered large-4 large-centered columns">
                {!! csrf_field() !!}
                <table>
                    <tr>
                        <th scope="row">Name</th>
                        <td>
                            <input type="text" name="name" maxlength="50" required>
                        </td>
                    </tr>
                    <tr>
                        <th scope="row">Type</th>
                        <td>
                            <input type="text" name="type" maxlength="20" required>
                        </td>
                    </tr>
                    <tr>
                        <th>
                            <button type="submit" class="button success">
                                <i class="fi-plus"></i>
                                Add Animal
                            </button>
                        </th>
                        <td>
                            <a href="{{url('/animals')}}" class="button alert">
                                <i class="fi-x-circle"></i>
                                &nbsp; Cancel
                            </a>
                        </td>
                    </tr>
                </table>
            </div>
        </form>

有没有人对我如何解决这个问题有任何建议?

2 个答案:

答案 0 :(得分:2)

我可能错了,但我认为你错过了表单中的action参数

试试这个:

<form action="/animals" method="post">

而不是这个

<form method="post">

作为提示,我建议您使用HTML表单外观。看看这个:https://laracasts.com/series/laravel-5-fundamentals/episodes/10

以下是Laravel 5.1 https://laravelcollective.com/docs/5.1/html

的文档

答案 1 :(得分:1)

当您发布表单时,您将表单发布到的URL是什么?网址应该在行动中。例如如下

<form action="/animals" method="post">
</form>