Laluan ini tidak menyokong kaedah POST. Kaedah yang disokong: GET, HEAD. laravelle 9
P粉976737101
P粉976737101 2024-03-27 16:43:09
0
1
396

Pertama sekali, saya seorang pemula dan saya tahu soalan ini telah ditanya dan dijawab beberapa kali. Saya telah mencuba penyelesaian atau saya telah melaksanakan cadangan, jadi saya di sini untuk mendapatkan bantuan pakar!

Apa yang saya cuba: - Menambah @csrf pada fail blade di dalam elemen borang saya. - Semak sama ada siaran dan masuk ke laluan saya adalah huruf kecil. -Tukar dapatkan untuk menerbitkan dan seterusnya keempat.

Yang di atas tidak membantu masalah, aduhai, saya masih menggaru kepala.

Sebenarnya, saya cuba memuat naik imej, menambah tajuk pada imej dan menghantar. Ia sepatutnya pergi ke halaman lain yang menunjukkan data dalam menu lungsur di sudut kiri atas, tetapi saya melihat imej dalam pengepala.

Edit: Penyelesaian: Saya menjalankan arahan berikut dan mengalih keluar ralat:

php laluan tukang: clear

Saya telah memasukkan imej ralat dan struktur folder saya di bawah:

Imej yang salah muncul. Struktur direktori projek

Kod adalah seperti berikut:

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());
 }
}

model/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>
@Bahagian akhir

Terima kasih terlebih dahulu atas bantuan anda!

P粉976737101
P粉976737101

membalas semua(1)
P粉495955986

Adakah ini disebabkan oleh laluan anda ditakrifkan sebagai "/p/" dan tindakan borang anda hanyalah "/p" (tanpa garis miring di belakang)? Saya akan cuba terlebih dahulu untuk memastikan ia sepadan dengan tepat. Tukar laluan anda kepada:

Route::post('/p', 'App\Http\Controllers\PostsController@store');

Anda juga boleh cuba mengembangkan definisi laluan itu.

Route::post('/p/', 'App\Http\Controllers\PostsController@store');

akan menjadi

Route::any('/p/', 'App\Http\Controllers\PostsController@store');
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan