Welcome Guest, Not a member yet? Register   Sign In
createdField & updatedField & deleteUpdate Cant Update
#3

(This post was last modified: 06-02-2022, 12:28 AM by flux1on.)

(06-01-2022, 10:04 PM)kenjis Wrote: Because you are using Builder's method.
CodeIgniter Model is kind of wrapper for Builder, but if you want to use Model's functionality,
you must use Model's methods.

For example:
PHP Code:
    public function saveData(array $data = [])
    {
        return $this->insert($data);
    

Okayy thankyou, now automatically updated. But beforeInsert & beforeUpdate cant work, why?

PHP Code:
<?php
namespace App\Models;

use 
CodeIgniter\Model;
use 
Config\Services;

class 
UsersModel extends Model
{
    protected $table            'sm_user';
    protected $primaryKey      'user_no';
    protected $useAutoIncrement true;
    protected $returnType      'array';
    protected $allowedFields    = [
        'user_company',
        'user_name',
        'user_email',
        'user_password',
        'user_phone',
        'user_register_token',
        'user_register_flag',
        'user_reset_token',
        'user_reset_flag',
        'user_lastlogin',
        'user_created_by',
        'user_modified_by',
        'user_deleted_by',
        'user_locked',
    ];
    protected $useSoftDeletes  true;
    protected $useTimestamps    true;
    protected $createdField    'user_created_date';
    protected $updatedField    'user_modified_date';
    protected $deletedField    'user_deleted_date';
    
    
protected $beforeInsert    = ['hashPassword','registerToken','resetToken'];
    protected $beforeUpdate    = ['hashPassword'];
    protected $allowCallbacks  true;
    
    
protected $validationRules  = [];
    protected $validationMessages = [];
    protected $skipValidation  false;

    public function __construct()
    {
        helper('date');

        $this->db        = \Config\Database::connect();
        $this->builder  $this->db->table($this->table);
        $this->encrypter Services::encrypter();
    }

    /**
    * -----------------------------------------
    * Hash Password
    * -----------------------------------------
    * 
    * Function Hash Password beforeInsert
    * and beforeUpdate
    * 
    * @param array $data Data Models
    */
    protected function hashPassword(array $data): array
    {
        if (! isset($data['data']['user_password'])) {
            return $data;
        }

        $data['data']['user_password'] = password_hash($data['data']['user_password'], PASSWORD_DEFAULT);
        
        
return $data;
    }

    /**
    * -----------------------------------------
    * Generate Token - Register
    * -----------------------------------------
    * 
    * Function Generate Token Register beforeInsert
    * 
    * @param array $data Data Models
    */
    protected function registerToken(array $data): array
    {
        if (! isset($data['data']['user_register_token'])) {
            return $data;
        }

        $data['data']['user_register_token'] = $this->encrypter->encrypt($data['data']['user_register_token']);
        
        
return $data;
    }

    /**
    * -----------------------------------------
    * Generate Token - Reset
    * -----------------------------------------
    * 
    * Function Generate Token Reset
    * beforeInsert
    * 
    * @param array $data Data Models
    */
    protected function resetToken(array $data): array
    {
        if (! isset($data['data']['user_reset_token'])) {
            return $data;
        }

        $data['data']['user_reset_token'] = $this->encrypter->encrypt($data['data']['user_reset_token']);
        
        
return $data;
    }

    /**
    * -----------------------------------------
    * Finding Data
    * -----------------------------------------
    *
    * @param string $selectParams Selected Field with Delimeter Commma (,)
    * @param array $whereParams More Where with Array Like ['field_name' => 'value'] or ['field_name >' => 3]
    * @param array $joinParams Join more with Array Like
    * [
    *      1 => [
    *          'to' => [
    *                  'table' => 'tb_field,
    *                  'condition' => 'tb_field.id = tb_fieldother.id'
    *          ],
    *          'type' => 'inner',
    *      ],
    * ]
    */
    public function findData(string $selectParams '*', array $whereParams = [], array $joinParams = []): array
    {
        $this->builder->select($selectParams);

        if (count($joinParams) > 0) {
            foreach ($joinParams as $index => $val) {
                $this->builder->join($joinParams[$index]['to']['table'], $joinParams[$index]['to']['condition'], $joinParams[$index]['type']);
            }
        }

        if (count($whereParams) > 0) {
            $this->builder->where($whereParams);
        }

        $findData $this->builder->get();

        return $findData->getResultArray();
    }

    /**
    * -----------------------------------------
    * Save Data
    * -----------------------------------------
    * 
    * Simpan Data User.
    *
    * @param array $data Data User
    */
    public function saveData(array $data = [])
    {
        return $this->insert($data);
    }

    /**
    * -----------------------------------------
    * Delete Data
    * -----------------------------------------
    * 
    * Delete Data User.
    *
    * @param int $id Data User
    * @param int $byDeleted Deleted by User
    */
    public function deleteData(int $id 0)
    {  
        
return $this->delete(intval($id));
    }

Reply


Messages In This Thread
RE: createdField & updatedField & deleteUpdate Cant Update - by flux1on - 06-02-2022, 12:25 AM



Theme © iAndrew 2016 - Forum software by © MyBB