Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将阵列输入字段保存为laravel中的长字符串_Php_Laravel_Laravel 5_Laravel 5.5 - Fatal编程技术网

Php 将阵列输入字段保存为laravel中的长字符串

Php 将阵列输入字段保存为laravel中的长字符串,php,laravel,laravel-5,laravel-5.5,Php,Laravel,Laravel 5,Laravel 5.5,大家好,我的刀片中有一个输入字段,它是一个数组 <div class="form-group"> <div class="input_fields_wrap"> <label for="dependents">Dependents</label> <button class="add_field_button

大家好,我的刀片中有一个输入字段,它是一个数组

            <div class="form-group">
                <div class="input_fields_wrap">
                    <label for="dependents">Dependents</label>
                    <button class="add_field_button btn btn-sm">+</button>
                    <input type="text" name="dependents[]" class="form-control input-sm">
                </div>
            </div>

家属
+
我想将其保存为一个长字符串,每个字符串之间用逗号分隔。我会将其作为家属保存在数据库中。可能吗?

是的,可能。在
向数据库插入
时使用

$dependents = implode(',', $request->input('dependents'));
并在
从数据库检索
数组时使用

$dependents[] = explode(',', $db_items->dependents);
是的,有可能。在
向数据库插入
时使用

$dependents = implode(',', $request->input('dependents'));
并在
从数据库检索
数组时使用

$dependents[] = explode(',', $db_items->dependents);

是的,您可以借助
内爆

$data = implode(',',$dataArray);

但我建议您使用

为了得到实际的数组,您可以使用

unserialize($data); // $data should be serialize 
使用键为的关联/多维数组时,您的工作量会减少


是的,您可以借助
内爆

$data = implode(',',$dataArray);

但我建议您使用

为了得到实际的数组,您可以使用

unserialize($data); // $data should be serialize 
使用键为的关联/多维数组时,您的工作量会减少


如前所述,您可以使其内爆/爆炸

一般来说,以这种方式保存数据几乎不可能进行搜索。通常最好将其保存在单独的表中,因为它本质上是一种多对一关系。这取决于您的决定,但我不会只是为了“抄近路”,因为像计数和分组这样的事情会受到影响,因为索引这样的字段比单独的表提供的性能优势要小得多

这就是说,我有一个建议,就是在前面和后面添加代表,如下所示:

,1,2,12,13,145,
你为什么问。因为考虑这个查询

SELECT * FROM table WHERE field LIKE '%1%'
现在,如果该列表是
字段
,它将匹配任何具有
1
的行。这可能不是你想要的。例如匹配
23215,54
。因此,简单的解决方案是在前面、后面和查询中添加分隔符,如下所示

SELECT * FROM table WHERE field LIKE '%,1,%'
现在我们只匹配带有
,1,
的字段,因为我们可以在搜索中包含分隔符。很明显,
,1,
215
不同

您必须仔细考虑如何使用这些数据,因为您将仅限于使用
如%data%
等查询进行搜索和分组

您可以通过以下操作简单地添加它们:

 $var = ','.implode(',', $arr).',';
好的方面是,如果您选择使用这些额外的分隔符,有一些简单的方法可以删除它们:

$var = trim($var,',');
//then we would explode it 
$arr = explode(',', $var);
您甚至可以在SQL中使用

SELECT TRIM(BOTH ',' FROM field ) AS trimmed;
在选择分隔符时,我会非常小心,如果数据中有一个
,请选择类似
|
的内容,并确保从输入数据中删除分隔符,否则将来可能无法正确分离数据


我通常在使用具有物化路径模式的树数据时使用此方法,但这是另一个时代的故事…

如前所述,您可以将其内爆/分解

一般来说,以这种方式保存数据几乎不可能进行搜索。通常最好将其保存在单独的表中,因为它本质上是一种多对一关系。这取决于您的决定,但我不会只是为了“抄近路”,因为像计数和分组这样的事情会受到影响,因为索引这样的字段比单独的表提供的性能优势要小得多

这就是说,我有一个建议,就是在前面和后面添加代表,如下所示:

,1,2,12,13,145,
你为什么问。因为考虑这个查询

SELECT * FROM table WHERE field LIKE '%1%'
现在,如果该列表是
字段
,它将匹配任何具有
1
的行。这可能不是你想要的。例如匹配
23215,54
。因此,简单的解决方案是在前面、后面和查询中添加分隔符,如下所示

SELECT * FROM table WHERE field LIKE '%,1,%'
现在我们只匹配带有
,1,
的字段,因为我们可以在搜索中包含分隔符。很明显,
,1,
215
不同

您必须仔细考虑如何使用这些数据,因为您将仅限于使用
如%data%
等查询进行搜索和分组

您可以通过以下操作简单地添加它们:

 $var = ','.implode(',', $arr).',';
好的方面是,如果您选择使用这些额外的分隔符,有一些简单的方法可以删除它们:

$var = trim($var,',');
//then we would explode it 
$arr = explode(',', $var);
您甚至可以在SQL中使用

SELECT TRIM(BOTH ',' FROM field ) AS trimmed;
在选择分隔符时,我会非常小心,如果数据中有一个
,请选择类似
|
的内容,并确保从输入数据中删除分隔符,否则将来可能无法正确分离数据


我通常在使用带有物化路径模式的树数据时使用此方法,但这是另一个时代的故事…

任何字符串都可以保存在数据库中。但我的意思是,要将其保存为数组,我如何将其保存为一个字符串@u_mulder你所说的
是什么意思,我会将其作为依赖项保存在我的数据库中如果是表中的实际记录,几乎可以肯定,最好创建一个透视表以保持引用完整性。将来,当有人更改代码并忘记字符串字段中填充了任意关系时,您将避免许多麻烦。但我计划将其保存为长字符串,以便能够将其保存在一个字段中任何字符串都可以保存在数据库中。但我的意思是,要将其保存为数组,如何将其设置为一个字符串@u_Mulder您所说的
是什么意思?我会将其作为依赖项保存在我的数据库中
?如果“依赖项”是表中的实际记录,您几乎可以肯定最好创建一个透视表来维护引用完整性。你会避免很多头痛在t