The sequence of my actions:
1. Create a model
Code:
<?php namespace App\Models;
use CodeIgniter\Model;
class AdminModel extends Model
{
protected $table = 'admin';
protected $returnType = 'App\Entities\Admin';
protected $allowedFields = ['last_login', 'last_logout', 'last_ip'];
}
2. Create an entity
Code:
<?php namespace App\Entities;
use CodeIgniter\Entity;
class Admin extends Entity
{
public function getPassword(){
return $this->attributes['password'];
}
public function verify_pass(string $user_password){
return password_verify($user_password, $this->password);
}
}
3. Initialize the model in the controller.
Code:
$AdminModel = new AdminModel();
4. Trying to get data from the entity.
Code:
$admin = $AdminModel->where('username', $this->request->getPost('username'))
->findAll();
if(empty($admin))
return redirect()->back()->with('error', array('auth_error' => 'User not found!'));
if( ! $admin->verify_pass($this->request->getPost('password')))
return redirect()->back()->with('error', array('auth_error' => 'Password incorrect!'));
In case of calling an entity method, I get an error:
Quote:Call to a member function verify_pass() on array
When accessing entity fields directly, the resulting value = NULL. And in the dd output, my data is visible.