Почему я получаю ошибку 500, хотя почтовый запрос успешно отправляется в БД?

Я столкнулся с очень странной ошибкой в ​​своей консоли, когда я успешно отправляю данные в базу данных, но получаю сообщение об ошибке 500:

POST http://127.0.0.1:8000/posts 500 (Internal Server Error).

Это создание имеет смысл вне меня, поскольку это просто кажется нелогичным.

Что я делаю неправильно?

Вот постконтроллер:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Post;

class PostController extends Controller
{
    public function create(Request $request, Post $post) {
        // create post
        $createdPost = $request->user()->posts()->create([
            'body' => $request->body
        ]);

        // return response
        return response()->json($post->with('user')->find($createdPost->id));
    }
}

Вот маршруты:

<?php

Auth::routes();

Route::group(['middleware' => ['auth']], function () {
    Route::get('/', 'TimelineController@index');
    Route::post('/posts', 'PostController@create');
});
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что ошибка находится в вашей строке ответа. Вы вызываете метод find() в одном объекте модели вместо Класс модели, Объект коллекции или Объект отношения. Проверьте сигнальную линию:

class PostController extends Controller
{
    public function create(Request $request, Post $post) {

        // ...

        return response()->json($post->with('user')->find($createdPost->id)); // <----
    }
}

Попробуйте это вместо этого:

        return response()->json(Post::with('user')->find($createdPost->id));
        // or even easier:
        return response()->json($createdPost->load('user'));
return response()->json($createdPost->load('user')); сделал это за меня! Спасибо! Примечание: вы забыли () в response.
mr test 30.04.2019 02:58

@mrtest рад помочь. PS: Спасибо за замечание, я исправил код;)

Kenny Horna 30.04.2019 03:09

Другие вопросы по теме