Laravel 8 中未定义操作 Controller@store 的问题

lil*_*ily 5 php controller laravel laravel-8

我仍在探索 Laravel 8,但我的控制器的 store() 方法“未定义”有问题。

InvalidArgumentException Action PostsController@store 未定义。(查看:D:\Server\htdocs\app\resources\views\posts\create.blade.php)

我相信我实际上已经定义了它并且我使用了资源路线。

路线

Route::resource('posts', PostsController::class); 
Run Code Online (Sandbox Code Playgroud)

刀刃

@extends('layouts.app')

@section('content')
    <h1>Create Post</h1>

    {!! Form::open(['action' => 'PostsController@store', 'method' => 'POST']) !!}
    <div class="form-group">
        {{Form::label('title', 'Title')}}
        {{Form::label('title', ['class' => 'form-control','placeholder' =>'Title'])}}
    </div>
    <div class="form-group">
        {{Form::label('body', 'Body')}}
        {{Form::textarea('body', ['class' => 'form-control','placeholder' =>'Body'])}}
    </div>

    {{Form::submit('Submit',['class' =>'btn btn-primary'])}}
    {!! Form::close() !!}

@endsection
Run Code Online (Sandbox Code Playgroud)

控制器

class PostsController extends Controller
{
    public function create()
    {
        return view('posts.create');
    }

    public function store(Request $request)
    {
        $this->validate($request, [
            'title' => 'required',
            'body' => 'required'
        ]);

        return 143;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

lag*_*box 14

如果您希望在为操作生成 URL 时添加命名空间前缀,请进入您的RouteServiceProvider并将$namespace属性设置App\Http\Controllers为。

否则,您应该通过完全限定类名称 (FQCN) 来指代您的控制器。

['action' => 'App\Http\Controllers\PostsController@store', ...]
Run Code Online (Sandbox Code Playgroud)