【发布时间】:2020-12-21 19:26:48
【问题描述】:
当我通过 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吗?
【问题讨论】:
标签: php mysql laravel api model-view-controller