-1

I want to add $datasigned string value to the existing $data values, what should I do?

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;
}
Aditya Pratama
  • 657
  • 1
  • 8
  • 21

2 Answers2

1

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

0

Thanks @Troaca Mihai!

public function index(Request $request){
        $data = Apidata::select('file')->where('nim','=',$request->nim)->get()->toArray();
        $newData = [];
        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);
        }
        $combinedData = array_merge($data,$newData);
        return $combinedData;
    }
Aditya Pratama
  • 657
  • 1
  • 8
  • 21