我仍在探索 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 關注
- 205 瀏覽
添加回答
舉報
0/150
提交
取消