Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

afoysal's avatar

Debug a Function

How can I debug below function.

public function store($request, $type)
    {
        DB::beginTransaction();
        try {

            $id = $request->get('id', '');
            if ($id != '') {
                $safety_main = Safety::where('id', $id)->findOrFail($request->id);
                if($request->property_id == '' && $request->unit_id == '') {
                    $safety_main->expired    = 1;
                    $safety_main->save();

                    $safety = new Safety();

                    $safety->property_id = $safety_main->property_id;
                    $safety->unit_id     = $safety_main->unit_id;

                    $safety->issue_date     = date( "Y-m-d", strtotime( $request->issue_date ) );
                    $safety->expiry_date    = date( "Y-m-d", strtotime( $request->expiry_date ) );
                    $safety->certified_by   = $request->certified_by;
                    $safety->remarks        = $request->remarks;
                    $safety->governing_body = $request->governing_body;
                    $safety->type           = $type;
                    $safety->ratings        = $request->ratings;
                    $safety->save();

                }
                else {
                    $safety_main->property_id = $request->property_id;
                    $safety_main->unit_id     = $request->unit_id;
                    $safety_main->issue_date     = date( "Y-m-d", strtotime( $request->issue_date ) );
                    $safety_main->expiry_date    = date( "Y-m-d", strtotime( $request->expiry_date ) );
                    $safety_main->certified_by   = $request->certified_by;
                    $safety_main->remarks        = $request->remarks;
                    $safety_main->governing_body = $request->governing_body;
                    $safety_main->type           = $type;
                    $safety_main->ratings        = $request->ratings;
                    $safety_main->save();

                }
            } 
            else {
                    $safety_query = Safety::where([
                        ['property_id', '=', $request->property_id],
                        ['unit_id', '=', $request->unit_id],
                        ['type', '=', 'electric']
                    ])->first();

                    if($safety_query){
                        return $this->error( [], 'Sorry! This Property already has a Electric Safety Entry' );
                    } else {
                        $safety = new Safety();
                        $safety->issue_date     = date( "Y-m-d", strtotime( $request->issue_date ) );
                        $safety->expiry_date    = date( "Y-m-d", strtotime( $request->expiry_date ) );
                        $safety->property_id    = $request->property_id;
                        $safety->unit_id        = $request->unit_id;
                        $safety->certified_by   = $request->certified_by;
                        $safety->remarks        = $request->remarks;            
                        $safety->governing_body = $request->governing_body;
                        $safety->type           = $type;
                        $safety->ratings        = $request->ratings;
                        $safety->save();
                    } 
            }

            
            /*File Manager Call upload*/
            if ($request->file('file')) {
                $new_file = FileManager::where('origin_type', 'App\Models\Safety')->where('origin_id', $safety->id ? $safety->id : $safety_main->id)->first();
                if ($new_file) {
                    $new_file->removeFile();
                    $upload = $new_file->updateUpload($new_file->id, 'Safety', $request->file);
                } else {
                    $new_file = new FileManager();
                    $upload = $new_file->upload('Safety', $request->file);
                }
                if ($upload['status']) {
                    $upload['file']->origin_id = $safety->id ? $safety->id : $safety_main->id;
                    $upload['file']->origin_type = "App\Models\Safety";
                    $upload['file']->save();
                } else {
                    throw new Exception($upload['message']);
                }
            }
            /*End*/
            DB::commit();
            $message = $request->id ? __(UPDATED_SUCCESSFULLY) : __(CREATED_SUCCESSFULLY);
            return $this->success([], $message);
        } catch (Exception $e) {
            DB::rollBack();
            $message = getErrorMessage($e, $e->getMessage());
            return $this->error([],  $message);            
        }
    }
0 likes
1 reply
Braunson's avatar

What are you trying to debug exactly? There are many debug tool/methods. You can use Ray (by Spatie) or something like logging on lines you want to log on. Depending how this function is called, you can use dd() and dump() on whatever lines you like.

1 like

Please or to participate in this conversation.