Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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将数据作为json字符串存储在nosql中_Php_Laravel_Laravel 5_Neo4j_Nosql - Fatal编程技术网

Php 使用Laravel将数据作为json字符串存储在nosql中

Php 使用Laravel将数据作为json字符串存储在nosql中,php,laravel,laravel-5,neo4j,nosql,Php,Laravel,Laravel 5,Neo4j,Nosql,对于给定的模型,我有一个Post Modela$filleble属性,其中我定义了一个列表a属性,如下所示: protected $fillable = [ 'title', 'slug', 'body', 'type', 'status', 'inputs', ]; 在用户界面中,由于某些原因,会有一些自定义字段,我希望将其存储为“inputs”属性中的string。这是我的控制器: pu

对于给定的模型,我有一个
Post Model
a
$filleble
属性,其中我定义了一个列表a属性,如下所示:

protected $fillable = [
        'title',
        'slug',
        'body',
        'type',
        'status',
        'inputs',
    ];
在用户界面中,由于某些原因,会有一些自定义字段,我希望将其存储为“inputs”属性中的
string
。这是我的控制器:

public function store(StorePost $request){
    $data=$request->validate();
    $p=Post::create($data);
    return response()->json(PostResource::collection($p)); 
}
但问题是,对于属性
input
,希望它的值是
json字符串
,因为有一些自定义字段和数据也将来自
表单
,它们的所有名称都将以
input
作为前缀,例如:
input\u body,input\u slug,输入\u title
。但是我在模型中没有定义,所以我想做的是在控制器中按照以下结构从它们创建一个paire键值:

[
    custom_field_name1=>value1,
    custom_field_name2=>value2
]

但是这些名称将取决于创建它们的用户,我不知道如何让控制器自动识别它们以创建上面的数组。然后将它们转换为
json字符串
以将它们存储在
input
属性中。

在Mysql中这样做

 add this line in `Post` Model

 protected $casts = [
    'inputs' => 'array'
 ];
首先,在迁移中使用
->json()
方法将输入字段字符串更新为json字段

 $table->json('inputs');
添加迁移后的加载项
Post
Model

 protected $casts = [
    'inputs' => 'array'
 ];
u向数组中强制转换列输入后,会自动将数据存储在json中 数组与检索

更多细节

在nosql中这样做

 add this line in `Post` Model

 protected $casts = [
    'inputs' => 'array'
 ];
仅将字段强制转换为数组


我不能在迁移中这样做,因为我使用的是nosql数据库,neo4j@ChristianLisangola您只需要在post模型中强制转换输入数组,但是,当来自表单名称的属性未在
模型的
$filleble attribute
中定义时,如何识别它们并将它们放入
输入数组中?