首先,我是初学者,我知道这个问题已经被问过几次并得到了回答。我已经尝试过解决方案,或者我已经实施了建议,所以我来这里寻求专家的帮助!
我尝试过的: -将@csrf添加到我的表单元素内的刀片文件中。 -检查我的路线中的帖子和获取是否为小写。 -更改获取到发布等等第四个。
以上内容并没有帮助解决问题,唉,我仍然摸不着头脑。
实际上,我正在尝试上传图像,为图像添加标题并提交。它应该转到另一个页面,在左上角的下拉列表中显示数据,但我看到标题中的图像。
编辑:解决方案:我运行了以下命令并删除了错误:
php 工匠路线:清除
我在下面包含了错误和我的文件夹结构的图像:
出现错误的图像。 项目目录结构
代码如下:
Web.php
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/p/create', 'App\Http\Controllers\PostsController@create');
Route::post('/p/', 'App\Http\Controllers\PostsController@store');
Route::get('profile/{user}', 'App\Http\Controllers\ProfilesController@index')-
>name('profile.show');
PostsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class PostsController extends Controller
{
public function constructor()
{
$this->middleware['auth'];
}
public function create()
{
return view('posts.create');
}
public function store() {
$data = request()->validate([
'caption' => 'required',
'image' => 'required|image',
]);
dd(request('image')->store('uploads','public'));
auth()->user()->posts()->create($data);
dd(request()->all());
}
}
模型/Posts.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
}
views/posts/create.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<form action="/p" enctype="multipart/form-data" method="post">
@csrf
<div class="row">
<div class="col-8 offset-2">
<div class="row mb-3">
<div class="row pt-5">
<h1>Add New Post</h1>
</div>
<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')
<strong>{{ $message }}</strong>
@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')
<strong>{{ $message }}</strong>
@enderror
<div class="pt-3">
<button class="btn btn-primary btn-sm">Add New Post</button>
</div>
</div>
</div>
</div>
</form>
@结束部分
预先感谢您的帮助!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这是否是由于您的路线被定义为“/p/”,而您的表单操作只是“/p”(没有尾部斜杠)导致的?我会首先尝试确保它们完全匹配。将您的路线更改为:
Route::post('/p', 'App\Http\Controllers\PostsController@store');您还可以尝试扩大该路线定义。
Route::post('/p/', 'App\Http\Controllers\PostsController@store');会变成
Route::any('/p/', 'App\Http\Controllers\PostsController@store');