Я знаю, что это глупая проблема, но я нахожусь на самом начальном этапе изучения Laravel без какого-либо руководства или помощи со стороны кого-либо. так что, пожалуйста, не возражайте. Я удалю его после получения ответа.
Я использую Laravel с инерцией реагирования. Я отправляю форму с маршрута «/p/create» на маршрут «/p», который возвращает мне ошибку 404 не найден. не могу найти, что здесь пошло не так.
Мои маршруты:
Route::get('/p/create', function () {
return Inertia::render('Posts');
})->name('posts.create');
Route::post('/p', [PostController::class, 'store'])->name('posts.store');
мой Постконтроллер:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function store()
{
dd(request()->all())
}
}
Форма '/p/create'
export default function Posts({ auth }) {
return (
<div className = "post">
<Navbar auth = {auth} />
<form
encType = "multipart/form-data"
action = "{{ route('posts.store') }}"
method = "POST"
>
<input
type = "hidden"
name = "_token"
value = "{!! csrf_token() !!}"
/>
<input type = "file" name = "image" />
<textarea name = "caption" />
<button type = "submit">Post</button>
</form>
</div>
);
}
мой список маршрутов:
PS E:\PHP projects\new and final\back\Instagram> php artisan route:list
GET|HEAD / .................................................................................. generated::1UHNC2h1AcGloyZQ
POST _ignition/execute-solution ....... ignition.executeSolution › Spatie\LaravelIgnition › ExecuteSolutionController
GET|HEAD _ignition/health-check ................... ignition.healthCheck › Spatie\LaravelIgnition › HealthCheckController
POST _ignition/update-config ................ ignition.updateConfig › Spatie\LaravelIgnition › UpdateConfigController
GET|HEAD confirm-password .................................... password.confirm › Auth\ConfirmablePasswordController@show
POST confirm-password ........................ generated::vG6ZS3cMZcBju2hz › Auth\ConfirmablePasswordController@store
GET|HEAD dashboard ............................................................................................ dashboard
GET|HEAD dashboard/{user} ................................................................................ dashboard.user
POST email/verification-notification ......... verification.send › Auth\EmailVerificationNotificationController@store
GET|HEAD forgot-password ..................................... password.request › Auth\PasswordResetLinkController@create
POST forgot-password ........................................ password.email › Auth\PasswordResetLinkController@store
GET|HEAD login ....................................................... login › Auth\AuthenticatedSessionController@create
POST login .................................. generated::WxuQbzVnBo7s2ikB › Auth\AuthenticatedSessionController@store
POST logout .................................................... logout › Auth\AuthenticatedSessionController@destroy
POST p ........................................................................... posts.store › PostController@store
GET|HEAD p/create .......................................................................................... posts.create
PUT password ...................................................... password.update › Auth\PasswordController@update
GET|HEAD profile .................................................................. profile.edit › ProfileController@edit
PATCH profile .............................................................. profile.update › ProfileController@update
DELETE profile ............................................................ profile.destroy › ProfileController@destroy
GET|HEAD register ....................................................... register › Auth\RegisteredUserController@create
POST register ..................................... generated::UZNwLO2B8FS0PVb4 › Auth\RegisteredUserController@store
POST reset-password ............................................... password.store › Auth\NewPasswordController@store
GET|HEAD reset-password/{token} ...................................... password.reset › Auth\NewPasswordController@create
GET|HEAD sanctum/csrf-cookie .......................... sanctum.csrf-cookie › Laravel\Sanctum › CsrfCookieController@show
GET|HEAD up ................................................................................. generated::pquyE3RwESLgrYla
GET|HEAD verify-email ...................................... verification.notice › Auth\EmailVerificationPromptController
GET|HEAD verify-email/{id}/{hash} ...................................... verification.verify › Auth\VerifyEmailController
Не знаю, почему вы изменили/отредактировали свой маршрут с {{ route('posts.store') }} на {{ route('posts') }}, но то же самое: маршрута с названием posts не существует.






Вы определили свой маршрут «post» без атрибута имени. Измените это на это:
Route::post('/p', [PostController::class, 'store'])->name('posts.store');
И тогда вы сможете использовать его следующим образом:
action = "{{ route('posts.store') }}"
Подробнее здесь: https://laravel.com/docs/11.x/routing#named-routes
нет, все еще получаю ошибку
Можете ли вы выполнить маршрут php artisan:list и вставить результат этой команды в свой вопрос?
Я получаю сообщение об ошибке PostController не существует. но у меня здесь постконтроллер
В этом случае либо ваш импорт неверен в web.php (или не импортирован вообще), либо неправильное пространство имен вашего PostController, что означает, что ваш контроллер вложен в какой-то другой каталог внутри app/Http/Controllers.
я их перепроверил. у них все в порядке, но он все еще не работает
я добавил список маршрутов. пожалуйста, проверьте их
Вы пропустили название маршрута, просто измените его на это:
Route::post('/p', [PostController::class, 'store'])->name('posts.store');
нет, все еще получаю ошибку
нормально ли использовать '/p' вместо {{ маршрут('posts.store') }} ?
@NaimurSharon Если это не работает, убедитесь, что маршрут отображается (с правильным названием) в php artisan route:list. Если это не так, попробуйте очистить кеш маршрутов: php artisan route:clear
я получаю сообщение об ошибке PostController не существует после запуска php artisan маршрута: список
Вам следует добавить use App\Http\Controllers\PostController; или каталог контроллера в файл маршрута, а также проверить имена.
да, я добавил его, но он все еще не работает
@NaimurSharon Пожалуйста, отредактируйте свой вопрос и добавьте измененный код, чтобы мы знали, с чем здесь работаем. «это все еще не работает» никому не помогает, пожалуйста, всегда публикуйте полное сообщение об ошибке, которое вы получаете. Это все еще ошибка 404 или «PostController не существует»?
я изменил их и добавил списки маршрутов. пожалуйста, проверьте
обновите файл web.php полным файлом и прикрепите изображение каталога ваших контроллеров.
Вот решение, которое работает для меня.
// Вызов контроллера в файле маршрута
use App\Http\Controllers\PostController;
// Определение маршрута
Route::post("/p", [PostController::class, 'store'])->name('store');
// Использование в файле представления
action = "{{ route('store') }}"
да, я использовал их, и они все еще не работают
{{ route('posts.store') }}С этим маршрута нетname