首先,我是初學者,我知道這個問題已經被問過幾次並得到了答案。我已經嘗試過解決方案,或者我已經實施了建議,所以我來這裡尋求專家的幫助!
我嘗試過的: -將@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>@結束部分
預先感謝您的幫忙!
P粉4959559862024-03-28 11:46:35
這是否是由於您的路線被定義為“/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');