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






Я думаю, что ошибка находится в вашей строке ответа. Вы вызываете метод 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'));
@mrtest рад помочь. PS: Спасибо за замечание, я исправил код;)
return response()->json($createdPost->load('user'));сделал это за меня! Спасибо! Примечание: вы забыли()вresponse.