Welcome Guest, Not a member yet? Register   Sign In
Using session data within a model
#3

Since you have the $session object in your controller you could also pass it to the model when the model is constructed.

Passing objects to a class constructor as a way of supplying the object's dependencies is a very good habit to have. It's actually considered a best practice, especially if you're going to do unit testing of a class - and you really, really should unit test. Then passing dependencies to an object is pretty much a must.

So, one approach is to define a model like this.

PHP Code:
<?php namespace App\Models;

use 
CodeIgniter\Database\ConnectionInterface;
use 
CodeIgniter\Session\SessionInterface;

class 
UserModel
{
    protected $db;
    protected $session;

    public function __construct(ConnectionInterface &$dbSessionInterface &$session)
    {
        $this->db =& $db;
        $this->session =& $session
    }


Use the model like this in a controller

PHP Code:
// other controller code

$session Services::session();
$db = \Config\Database::connect();

$users = new UserModel($db$session);

// other code 

If your model is extending /CodeIgniter/Model then there are a few minor changes, but I bet you get the idea.
Reply


Messages In This Thread
RE: Using session data within a model - by dave friend - 02-12-2020, 06:01 PM



Theme © iAndrew 2016 - Forum software by © MyBB