【发布时间】:2016-05-11 14:24:30
【问题描述】:
我正在开发 Laravel 4 和 Postgresql。 我正在尝试在 Postgresql 数组字段中存储一个数组。 这是我的表声明:
CREATE TABLE person_title (
id serial primary key,
title text,
name_list text[]
);
我尝试使用 Eloquent 插入一行:
public function create_person_title() {
$title = Input::get('title');
$name_list = Input::get('name_list');
$data = [
'title' : $title,
'name_list' : $name_list,
];
PersonTitle::create($data);
}
我得到这个错误:
preg_replace(): Parameter mismatch, pattern is a string while replacement is an array
此错误来自 vendor/laravel/framework/src/Illuminate/Support/helpers.php:990 行。
我在why do I get preg_replace() error when submitting a post form in Laravel?这个问题上读到,当我们尝试保存数组时会发生此错误。
但我真的想在我的 Postgresql 记录上存储一个数组(我应该能够做到)。 你知道怎么做吗?
【问题讨论】:
-
您也可以发表您的看法吗?我认为您正在从视图中发送数组输入并尝试在没有 foreach 循环的情况下保存。
-
这正是我尝试过的按钮,即使我尝试保存原始 PHP 数组,它也会失败并出现同样的错误。
-
如果您的输入有数组,那么您应该使用 foreach 将数据保存在数据库中。
-
所以请在这里发表您的看法
-
我找到了解决方案。我添加了名为 create_person_title 的视图。感谢您的帮助:)
标签: php arrays postgresql laravel-4 eloquent