gpt4 book ai didi

php - API Laravel中的JSON列添加不插入

转载 作者:行者123 更新时间:2023-12-04 08:57:59 25 4
gpt4 key购买 nike

当我通过 POST 进行“添加”时,不会插入 json。我想通过 api/polls 在“paramJson”列中插入一个 json。但它给我带来了问题
我有以下字段:

public function up()
{
Schema::create('polls', function (Blueprint $table) {
$table->id();
$table->text('now');
$table->json('paramJson');
$table->enum('status', ['a', 'b', 'c','d'])->default('a');
});
}
投票模型:
protected $fillable=[
'now',
];

protected $casts = [
'paramJson' => 'array',
];
PollsController.php
public function add(Request $request)
{
$poll = Poll::create($request->all());
return response()->json($poll, 201);
}
路由 API
Route::post('polls','PollsController@add');
我打了电话 http://127.0.0.1:8000/api/polls .我发送一个json如下:
{
"now": "did the MJ12 exist?",
"paramJson" : "{"key1": "value1", "key2": "value2"}"
}
给出以下错误:SQLSTATE[HY000]:一般错误:1364
而如果我插入它,它就需要它:
{
"now": "did the MJ12 exist?",
"paramJson" : "{\"key1\": \"value1\", \"key2\": \"value2\"}"
}
SQLSTATE [HY000]:一般错误:1364 字段 'paramJson'
而如果我从数据库中插入它,我会看到它是这样的
INSERT INTO polls (now, paramJson) values ("did the MJ12 exist?", '{"key1": "value1", "key2": "value2"}') 

"paramJson":"{\"key1\": \"value1\", \"key2\": \"value2\"}",
不能像这样在 laravel 中插入 json 吗?

最佳答案

看起来您的 JSON 编码不正确。尝试:

{
"now": "did the MJ12 exist?",
"paramJson" : {
"key1": "value1",
"key2": "value2"
}
}
即在paramJson 的值中保留双引号。 {"key1": "value1", "key2": "value2"}不是 "{"key1": "value1", "key2": "value2"}"

关于php - API Laravel中的JSON列添加不插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63708706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com