我对 Laravel 有点陌生,我为我的页面制作了一个表单,用户可以在其中添加新图像,该表单位于create.blade.php:<form action="/p" enctype="multipart/form-data" method="post">@csrf<div class="row"> <div class="col-8 offset-2"> <div class="row"> <h1>Add New Post</h1> </div> <div class="form-group row"> <label for="caption" class="col-md-4 col-form-label">Post Caption</label> <input id="caption" type="text" class="form-control @error('caption') is-invalid @enderror" name="caption" value="{{ old('caption') }}" autocomplete="caption" autofocus> @error('caption') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> <div class="row"> <label for="image" class="col-md-4 col-form-label">Post Image</label> <input type="file" class="form-control-file" id="image" name="image"> @error('image') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> <div class="row pt-4"> <button class="btn btn-primary">Add New Post</button> </div> </div></div>这是web.php(路线)文件:Route::get('/p/create','PostsController@create');Route::get('/p','PostsController@store');Route::get('/profile/{user}', 'ProfilesController@index')->name('profile.show');正如你所看到的,它指的PostController.php是:class PostsController extends Controller{ public function create() { return view('posts.create'); } public function store() { dd(request()->all()); }}我也执行命令php artisan route:list,就是这样:那么这里出了什么问题呢?我搜索了很多但找不到任何有用的东西。因此,如果您知道如何解决此问题,请告诉我。
3 回答
慕丝7291255
TA贡献1859条经验 获得超6个赞
您正在向服务器发送请求,因此需要将 HTTP 请求设置为 post 而不是 get,如下所示
Route::post('/p','PostsController@store');
慕村9548890
TA贡献1884条经验 获得超4个赞
在 create.blade.php 表单方法中是,
POST
但在 web.php 中是Route::get('/p','PostsController@store');
,所以你应该更改Route::post('/p','PostsController@store')
而不是Route::get('/p','PostsController@store')
在控制器中
use Illuminate\Http\Request;
class PostsController extends Controller
{
public function create()
{
return view('posts.create');
}
public function store(Request $request)
{
dd($request->input('image'));
}
}
- 3 回答
- 0 关注
- 102 浏览
添加回答
举报
0/150
提交
取消