gpt4 book ai didi

php - Laravel 在将数组存储到 Json 数据库字段时获得 "Array to string conversion"

转载 作者:可可西里 更新时间:2023-11-01 12:58:25 28 4
gpt4 key购买 nike

我正在尝试将带有选项的数组保存到我的 postgres 数据库的 json 数据字段中。我正在使用 Laravel 5.5 并使用扩展名“dimsav/laravel-translatable”进行翻译。

我的模型问题是这样的:命名空间应用;

use Illuminate\Database\Eloquent\Model;
use Dimsav\Translatable\Translatable;

class Question extends Model
{
use Translatable;
public $translatedAttributes = ['options', 'answer'];

protected $casts = [
'options' => 'array'
];
}

模型 QuestionTranslation 看起来像这样:

namespace App;

use Illuminate\Database\Eloquent\Model;

class QuestionTranslation extends Model
{

public $timestamps = false;
public $fillable = ['options', 'answer'];

以及 QuestionsController 中的存储操作:

 public function store(Request $request)
{
$question = new Question();

$options[1] = "test1";
$options[2] = "test2";

$question->answer = 1;
$question->options = $options;

$question->save();

}

当我尝试存储该数据时出现错误:

Illuminate \ Database \ QueryException
Array to string conversion (SQL: insert into "question_translations" ("locale", "answer", "options", "question_id") values (en, 1, test1, 18) returning "id")

当我使用 json_encode 自己转换 $options 时,我可以毫无问题地存储它。

你知道为什么 Laravel 转换不工作吗?也许是因为可翻译的扩展名?

最佳答案

可以尝试使用这个:

protected $casts = [
'options' => 'json',
];

我在 MySQL 上测试过它,但理论上它应该也适用于 postgresql。

关于php - Laravel 在将数组存储到 Json 数据库字段时获得 "Array to string conversion",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48028315/

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