使用laravel开发社区视频 10.发表一篇新的贴子 5:08提交出现错误

根着视频做的,到5:08秒 提交贴子,出现以下错误:
MethodNotAllowedHttpException in RouteCollection.php line 219:
以下是代码部分:

1.routes.php

<?php
    Route::get('/', 'PostsController@index');
    Route::resource('discussions', 'PostsController');
    Route::get('/user/register', 'UsersController@register');
    Route::get('/user/login', 'UsersController@login');
    Route::get('/verify/{confirm_code}', 'UsersController@confirmEmail');
    Route::post('/user/register', 'UsersController@store');
    Route::post('/user/login', 'UsersController@signin');

2.PostsController.php

public function store(Requests\StoreBlogPostRequest $request)
{
  $data = [
    'user_id' => \Auth::user()->id,
    'last_user_id' => \Auth::user()->id
  ];
  $discussion = Discussion::create(array_merge($request->all(),$data));
  return redirect()->action('PostsController@show',['id'=>$discussion->id]);
}

3.Discussion.php

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Discussion extends Model
{
//
  protected $fillable = ['title', 'body', 'user_id', 'last_user_id'];
  public function user()
  {
      return $this->belongsTo(User::class);//$discussion->user
  }
}

4.StoreBlogPostRequest.php

<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class StoreBlogPostRequest extends Request
{
  /**
  * Determine if the user is authorized to make this request.
  *
  * @return bool
  */
  public function authorize()
  {
      return true;
  }
  /**
  * Get the validation rules that apply to the request.
  *
  * @return array
  */
  public function rules()
  {
    return [
      'title'=>'required',
      'body'=>'required'
    ];
  }
}

5.create.blade.php

@extends('app')
@section('content')
<div class="container">
    <div class="row">
      <div class="col-md-8 col-md-offset-2" role="main">
      {!! Form::open(['url'=>'/discussions']) !!}
        <div class="form-group">
          {!! Form::label('title', 'Title:') !!}
          {!! Form::text('title',null,['class'=>'form-control']) !!}
        </div>
        <div class="form-group">
          {!! Form::label('body', 'Body:') !!}
          {!! Form::textarea('body',null,['class'=>'form-control']) !!}
        </div>
        <div>
          {!! Form::submit('发表贴子',['class'=>'btn btn-primary pull-right']) !!}
        </div> 
          {!! Form::close() !!}
      </div>
    </div>
</div>
@stop

如何解决?

JellyBool

仔细看了一下,好像没什么错误。。。。

fourtwothree

@JellyBool 行,我再看看吧,感谢你的回答。

JellyBool

这个错误应该就是路由注册的错误,你用的哪个版本的laravel?

fourtwothree

@JellyBool 我的php artisan命令查看是laravel-v5.1.31,但我下载的是www.golaravel.com的v.5.1.11的一键安装包

JellyBool

那我确实看不出什么错误了,这个错误理论上就是路由的错误。

fourtwothree

@JellyBool 恩,谢谢你.

世界的小宇宙

试试把最后的表单提交指向/discussions/store试试
我以前像下面这样写也报过219.
Route::controller(‘register’, ‘Auth\UserController’);
是因为用隐式控制器,默认进入的是register/index的方法。
或者你在PostsController下建个public function index(Request request){dd(request);}试一下呢

fourtwothree

@世界的小宇宙 感谢你的回答。试了很多种办法都不行,最后我把所有网页关了。再把所有的缓存都清了一遍,再次访问,竟然好了,我只想说my gold…

另外,刚才我试了把表单提交指向/discussions改为/discussions/store,出现错误:MethodNotAllowedHttpException in RouteCollection.php line 219: