Module

Define Method in Model

Introduction

We now need to implement the logic for each of these in a model at VaahCms/Modules/Articles/Entities/Content.php:

Create. This method allows users to create or insert a new record in the database

    public static function postCreate($request)
    {

        $validation = static::validation($request);
        if(isset($validation['status']) && $validation['status'] == 'failed')
        {
            return $validation;
        }

        $inputs = $request->all();


        $item = new static();

        $item->fill($inputs);
        $item->save();

        $response['status'] = 'success';
        $response['data']['item'] =$item;
        $response['messages'][] = 'Saved';

        return $response;

    }

Read. This method allows users to search and retrieve specific records in the table and their values.

    public static function getList($request)
    {
        $list = static::orderBy('id', 'desc');
        $data['list'] = $list->paginate(config('vaahcms.per_page'));

        $response['status'] = 'success';
        $response['data'] = $data;
        return $response;

    }
    //-------------------------------------------------
    public static function getItem($id)
    {
        $item = static::where('id', $id)
            ->withTrashed()
            ->first();

        $response['status'] = 'success';
        $response['data'] = $item;
        return $response;

    }

Update. This method is used to modify existing records that exist in the database.

 public static function postStore($request,$id)
    {

        $validation = static::validation($request);
        if(isset($validation['status']) && $validation['status'] == 'failed')
        {
            return $validation;
        }

        $title_exist = static::where('id','!=',$request['id'])->where('title',$request['title'])->first();

        if($title_exist)
        {
            $response['status'] = 'failed';
            $response['errors'][] = "This title is already exist.";
            return $response;
        }

        $inputs = $request->all();

        $item = static::where('id',$id)->withTrashed()->first();

        $item->fill($inputs);
        $item->save();

        $response['status'] = 'success';
        $response['data'] = [];
        $response['messages'][] = 'Data updated.';
        return $response;

    }

Delete. This method allows user to remove records from a database that is no longer needed.

    public static function postDestroy($id)
    {

        $item = static::where('id',$id)->withTrashed()->first();

        $item->delete();

        $response['status'] = 'success';
        $response['data'] = [];
        $response['messages'][] = 'Deleted Successfully.';

        return $response;

    }

Validation. It is the most important aspect while designing an application. It validates the incoming data.

    public static function validation($request)
    {
        $rules = array(
            'title' => 'required|max:255',
            'content' => 'required|max:255',
            'is_published' => 'required',
        );

        $validator = \Validator::make( $request->all(), $rules);
        if ( $validator->fails() ) {

            $errors             = errorsToArray($validator->errors());
            $response['status'] = 'failed';
            $response['errors'] = $errors;
            return $response;
        }
        
        $response['status'] = 'success';

        return $response;

    }

Copyright © 2024