即使发送请求成功发送到DB,为什么我会收到500错误?

问题描述 投票:1回答:1

我在我的控制台中遇到一个非常奇怪的错误,即使我在数据库中成功提交数据,我收到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 laravel debugging
1个回答
2
投票

我认为错误位于您的响应行中。您在单个模型对象中调用find()方法而不是Model classCollection objectRelationship object。检查信号线:

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'));
© www.soinside.com 2019 - 2024. All rights reserved.