Welcome Guest, Not a member yet? Register   Sign In
How to autoload helper functions in codeigniter 4
#1

I just downloaded CodeIgniter 4 from their official GitHub. They changed a lot from CodeIgniter 3. I want to use base_url() function in the view and for that, you need to load URL helper and in CodeIgniter 3 i autoloaded it in config/autoload.php file. But now they have entirely changed the structure of config/autoload.php file in CodeIgniter 4 and it is very confusing to me.
You can still use the base_url() function in your views in CodeIgniter 4 by using below code in your constructor of controller 
Code:
helper('url');

If anybody who used CodeIgnter 4 knows how to autoload helper functions like url by modifying autoload.php file please help me.
Reply
#2

From the current CI4 docs it doesn't look like you can autoload helpers like in past versions, though I've not really dug into CI4 yet.

https://bcit-ci.github.io/CodeIgniter4/g...lpers.html and https://bcit-ci.github.io/CodeIgniter4/h...elper.html
Reply
#3

(This post was last modified: 01-22-2017, 10:33 AM by InsiteFX.)

You can if you have a BaseController like the MY_Contoller in CI 3.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#4

(This post was last modified: 01-22-2017, 12:07 PM by kilishan.)

In the Controller docs it shows that you can use the helpers class property to have it loaded on a per-controller basis. If you want something loaded on every request, currently your best option is to use a base controller like InsiteFX mentioned. Though, you'd want to be careful you didn't overwrite any per-controller helpers:

Code:
class BaseController extends \CodeIgniter\Controller
{
    protected $helpers = [];

    public function __construct()
    {
        $this->helpers = array_merge($this->helpers, ['url', 'form']);
    }
}

class UserController extends BaseController
{
    protected $helpers = ['filesystem', 'number'];
}

Or, even simpler, just load the helper in the BaseController constructor:

Code:
class BaseController extends \CodeIgniter\Controller
{
    protected $helpers = [];

    public function __construct()
    {
        helper(['url', 'form']);
    }
}
Reply




Theme © iAndrew 2016 - Forum software by © MyBB