I suppose that you are using laravel so maybe this will help you :
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;
Or you can try :
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;
If you do not want to override "file" you can simply replace $berkas["file"] = $datasigned
with $berkas[]["file"] = $datasigned
if you want to add it to data you have to create anew array is more simple do something like :
public function index(Request $request){
$data = Apidata::select('file')->where('nim','=',$request->nim)->get()->toArray();
$newDaata = [];
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
array_push($newData , $berkas);
}
return $newData;
Hope is yusefull