我正在尝试将带有选项的数组保存到我的postgres数据库的json数据字段中.我正在使用Laravel 5.5,我正在使用扩展名“dimsav / laravel-translatable”进行翻译.
我的模型问题看起来像这样:
命名空间App;
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'];
}
而QuestionController中的商店动作:
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铸造不工作?也许是因为可翻译的扩展?
解决方法:
我在这里得到了帮助:
使用此解决方案有效
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。