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.