我想将$ datasigned字符串值添加到现有的$ data值中,该怎么办?
public function index(Request $request){
$data = Apidata::select('file')->where('nim','=',$request->nim)->get();
foreach($data as $berkas){
$url = $berkas->file;
// $filename = basename($url);
// $file = storage_path().'/berkas/'.$filename;
$pathfile = pathinfo($url);
$datasigned = $pathfile['dirname'].'/'.$pathfile['filename'].'_signed.'.$pathfile['extension'];
array_push((array)$berkas, array("file" => $datasigned));
}
return $data;
}
编辑:我通过首先对(array)$ berkas创建一个新变量并将其放到那里来解决了。但是数据不会添加新的字符串$ datasigned ...我该怎么办?
[array_push()
声称只有在具有数字索引的数组时才是最好的,但是在这种情况下,如果要在另一个数组中添加带有键的值,则必须使用array_merge()
作为
public function index(Request $request){
$data = Apidata::select('file')->where('nim','=',$request->nim)->get();
foreach($data as $berkas){
$url = $berkas->file;
// $filename = basename($url);
// $file = storage_path().'/berkas/'.$filename;
$pathfile = pathinfo($url);
}
$datasigned = array(
'key' => $pathfile['dirname'].'/'.$pathfile['filename'].'_signed.'.$pathfile['extension']
);
$result = array_merge($data,$datasigned);
return $data;
}
我想您正在使用laravel,所以也许这会对您有所帮助:
public function index(Request $request){
$data = Apidata::select('file')->where('nim','=',$request->nim)->get()->toArray();
foreach($data as $berkas){
$url = $berkas["file"];
// $filename = basename($url);
// $file = storage_path().'/berkas/'.$filename;
$pathfile = pathinfo($url);
$datasigned = $pathfile['dirname'].'/'.$pathfile['filename'].'_signed.'.$pathfile['extension'];
$berkas["file"]= $datasigned
}
return $data;
或者您可以尝试:
public function index(Request $request){
$data = Apidata::select('file')->where('nim','=',$request->nim)->get();
foreach($data as $berkas){
$url = $berkas->file;
$berkas = (array)$berkas
// $filename = basename($url);
// $file = storage_path().'/berkas/'.$filename;
$pathfile = pathinfo($url);
$datasigned = $pathfile['dirname'].'/'.$pathfile['filename'].'_signed.'.$pathfile['extension'];
$berkas["file"] = $datasigned
}
return $data;
如果您不想覆盖“文件”,只需将$berkas["file"] = $datasigned
替换为$berkas[]["file"] = $datasigned
希望是yusefull