Laravel: 在单个 SQL 列中插入数组对象
Laravel: insert array object in single SQL column
我在名为会话的数据库中有一个列,我想以数组的形式将下面的所有数据插入到一个列中。
数组中有数据
array:1 [▼
0 => array:3 [▼
"_token" => "ENzbpMgvlOhMkwE1Fv13hjn9NlCOUolIFBDZ4wJd"
"session_start" => "2000-01-01"
"session_end" => "2002-01-01"
]
]
下面我试过了
public function store(Request $request)
{
$arr = (array($request->all()));
$create = SchoolSession::create($arr));
}
出现错误:数组到字符串的转换
请告知解决方案,并告知如何从数据库中获取相同内容并单独显示。
不能直接在列中添加数组:
public function store(Request $request)
{
$arr = $request->all();
$arr = serialize($arr);
$create = SchoolSession::create(['session'=>$arr]);
}
并从数据库中获取相同的内容:
public function view(Request $request)
{
$SchoolSession = SchoolSession::where('id','Specific ID ADD')->get();
$SchoolSession = unserialize($SchoolSession[0]->session);
}
你不能在没有某种序列化的情况下将数组插入数据库字段,所以你可以尝试这样的事情(但还有更好的方法,继续阅读):
public function store(Request $request)
{
$json = json_encode($request->all());
$create = SchoolSession::create(['session' => $json]);
}
确保您的数据库字段类型是 JSON/TEXT
,具体取决于您的 mysql
版本。检索数据时,您还需要 decode
它。
开箱即用,Laravel 提供了一种简单的机制来处理此问题。因此,您不需要手动 encode/decode
您的数据。 Eloquent
将在将其保存到数据库之前处理编码,并且解码将自动处理。阅读文档(上面给出的link)。
我在名为会话的数据库中有一个列,我想以数组的形式将下面的所有数据插入到一个列中。
数组中有数据
array:1 [▼
0 => array:3 [▼
"_token" => "ENzbpMgvlOhMkwE1Fv13hjn9NlCOUolIFBDZ4wJd"
"session_start" => "2000-01-01"
"session_end" => "2002-01-01"
]
]
下面我试过了
public function store(Request $request)
{
$arr = (array($request->all()));
$create = SchoolSession::create($arr));
}
出现错误:数组到字符串的转换
请告知解决方案,并告知如何从数据库中获取相同内容并单独显示。
不能直接在列中添加数组:
public function store(Request $request)
{
$arr = $request->all();
$arr = serialize($arr);
$create = SchoolSession::create(['session'=>$arr]);
}
并从数据库中获取相同的内容:
public function view(Request $request)
{
$SchoolSession = SchoolSession::where('id','Specific ID ADD')->get();
$SchoolSession = unserialize($SchoolSession[0]->session);
}
你不能在没有某种序列化的情况下将数组插入数据库字段,所以你可以尝试这样的事情(但还有更好的方法,继续阅读):
public function store(Request $request)
{
$json = json_encode($request->all());
$create = SchoolSession::create(['session' => $json]);
}
确保您的数据库字段类型是 JSON/TEXT
,具体取决于您的 mysql
版本。检索数据时,您还需要 decode
它。
开箱即用,Laravel 提供了一种简单的机制来处理此问题。因此,您不需要手动 encode/decode
您的数据。 Eloquent
将在将其保存到数据库之前处理编码,并且解码将自动处理。阅读文档(上面给出的link)。