#php #laravel
#php #laravel
Вопрос:
public function create(Request $request){
$comment = new Comment;
$comment->user_id = Auth::user()->id;
$comment->post_id = $request->id; //here is where the response is string
$comment->comment = $request->comment;
$comment->save();
$comment->user;
return response()->json(
$comment,
);
}
Я не знаю, почему ответом является string id, а при миграции базы данных таблица $table->unsignedBigInteger('post_id');
post_id должна быть целочисленной..
{
"user_id": 4,
"post_id": "2", //response is string
"comment": "test string id finale",
"updated_at": "2020-10-31T19:55:49.000000Z",
"created_at": "2020-10-31T19:55:49.000000Z",
"id": 11,
}
Комментарии:
1. Приведите значение к int с
(int)
помощью . Все значения в запросе являются строками .2. хорошо, это работает … но как это происходит со строкой?
3. Потому что клиент отправляет на сервер строки .
Ответ №1:
Перейдите к своей модели комментариев и добавьте:
protected $casts = [
'post_id' => 'integer',
];
И строка (которая всегда пересылается в запросе) должна быть преобразована в int в модели (а затем в конечном итоге в JSON в виде числа).