Welcome Guest, Not a member yet? Register   Sign In
How to get data after saving the model
#3

You should read about entities: https://codeigniter4.github.io/CodeIgnit...ities.html

database table users:

id                - integer
username    - string
email          - string
password    - string
created_at   - datetime


PHP Code:
<?php

namespace App\Models;

use 
CodeIgniter\Model;
use 
App\Entities\UserEntity;

class 
UserModel extends Model
{
    protected $table        'users';
    protected $allowedFields = [
    'username',
    'email',
    'password',
    ];
    protected $returnType    UserEntity::class;
    protected $useTimestamps true;



PHP Code:
<?php

namespace App\Entities;

use 
CodeIgniter\Entity\Entity;

class 
UserEntity extends Entity
{
    // ...



PHP Code:
<?php

namespace App\Controllers;

use 
CodeIgniter\Controller;
use 
App\Entities\UserEntity;
use 
App\Models\UserModel;

class 
UserController extends Controller
{
 public function 
initController(RequestInterface $requestResponseInterface $responseLoggerInterface $logger)
 {
 
// Do Not Edit This Line
 
parent::initController($request$response$logger);

 }

 public function 
insertUser()
    {
    $insertData = [
    'username' => 'John',
    'email' => '[email protected]',
    'password' => 'top_secret',
    ];

    $userEntity = new UserEntity();
    $userModel = new UserModel();

    $userEntity->fill($insertData);

    $userModel->save($userEntity); // insert as ID is not provided

    // result is inserted userEntity object
    $userEntity->id 1;
    $userEntity->username 'John';
    $userEntity->email '[email protected]';
    $userEntity->password 'top_secret';

    // as UserModel has $useTimestamps = true
    $userEntity->created_at '2022-01-27 14:06:52';
    }


 public function 
updateUser(int $id 1)
    {
    $updateData = [
    'username' => 'Jane',
    'email' => '[email protected]',
    'password' => 'qwerty',
    ];

    $userModel = new UserModel();

    $userEntity $userModel->find($id);

    $userEntity->fill($updateData);

    $userModel->save($userEntity); // update as ID is set

    // result is updated userEntity object
    $userEntity->id 1;
    $userEntity->username 'Jane';
    $userEntity->email '[email protected]';
    $userEntity->password 'qwerty';

    // as UserModel has $useTimestamps = true
    $userEntity->created_at '2022-01-27 14:06:52';
    }


Reply


Messages In This Thread
How to get data after saving the model - by Seva - 01-27-2022, 01:26 AM
RE: How to get data after saving the model - by davis.lasis - 01-27-2022, 05:15 AM



Theme © iAndrew 2016 - Forum software by © MyBB