Почему я получаю ошибку 500, даже если после отправки запроса в БД успешно? - PullRequest
1 голос
/ 30 апреля 2019

Я столкнулся с очень странной ошибкой в ​​моей консоли, когда, несмотря на то, что я успешно отправляю данные в базу данных, я получаю ошибку 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');
});

1 Ответ

2 голосов
/ 30 апреля 2019

Я думаю, что ошибка находится в вашей строке ответа.Вы вызываете метод 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'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...