我仍在探索 Laravel 8,但我的控制器的 store() 方法“未定义”有问题。InvalidArgumentException 操作 PostsController@store 未定义。(查看:D:\Server\htdocs\app\resources\views\posts\create.blade.php)我相信我实际上已经定义了它并且我使用了资源路线。路线Route::resource('posts', PostsController::class); 刀刃@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控制器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; }}
5 回答
繁星coding
TA贡献1797条经验 获得超4个赞
如果您希望在生成操作 URL 时添加命名空间前缀,请进入您的RouteServiceProvider
并将$namespace
属性设置为。App\Http\Controllers
否则,您应该通过控制器的完全限定类名称 (FQCN) 来引用控制器。
['action' => 'App\Http\Controllers\PostsController@store', ...]
呼啦一阵风
TA贡献1802条经验 获得超6个赞
您应该在表单中使用路线而不是操作。尝试类似的东西
{!! Form::open(['route' => 'products.store', 'method' => 'POST']) !!}
蛊毒传说
TA贡献1895条经验 获得超3个赞
这有助于我访问 PostsController 中的商店功能
Form::open(['route' => 'posts.store'])
我的路线是
Route::resource('posts','PostsController');
浮云间
TA贡献1829条经验 获得超4个赞
或者,您可以尝试在您的情况下使用命名路由,因为这是一种资源,PostsController
您应该具有路由名称posts.store
route('posts.store')
传入请求的实例将由PostsController@store
Laravel 服务容器作为参数自动注入到您的定义中。
我有类似的情况,但我没有使用资源控制器。所以我必须明确定义该特定操作的路线。
- 5 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消