繁体   English   中英

即使已成功将发布请求发送到数据库,为什么仍然出现500错误?

[英]Why am I getting a 500 error even though post request's being sent to DB successfully?

我在控制台中遇到了一个非常奇怪的错误,即使我在数据库中成功提交了数据,也收到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');
});

我认为该错误位于您的响应行中。 您在单个模型对象而不是Model类Collection对象Relationship对象中调用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'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM