CodeIgniter 4, вспомогательная функция не работает - PullRequest
1 голос
/ 05 ноября 2019

Я попытался автоматически загрузить вспомогательную функцию. Я добавил вспомогательный файл в autoload.php и вызвал функцию в файле представления, но он не работает.

app / Config / autoload.php

$psr4 = ['Config'      => APPPATH . 'Config',
         APP_NAMESPACE => APPPATH, 
         'App'         => APPPATH,
         'Helpers'     => APPPATH . 'Helpers/MY_helper'];

app / Helpers / My_helper.php

<?php  if(!defined('BASEPATH')) exit('No direct script access allowed');

   function chicking_helper(){
       return 'welcome to helper function';
   }

app / Views / welcome_message.php

<h1>Welcome to CodeIgniter </h1>
<p class="version">version <?= CodeIgniter\CodeIgniter::CI_VERSION ?></p>

<?php
chicking_helper();
?>

Приложение / Контроллеры / BaseController

class BaseController extends Controller
{

    /**
     * An array of helpers to be loaded automatically upon
     * class instantiation. These helpers will be available
     * to all other controllers that extend BaseController.
     *
     * @var array
     */
    protected $helpers = ['url', 'file'];

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

В вашем массиве BaseController - $ helpers добавьте элемент с именем вашего вспомогательного файла. Скажем, у вас есть app/Helpers/My_helper.php, затем вы редактируете свой BaseController следующим образом:

class BaseController extends Controller
{

    /**
     * An array of helpers to be loaded automatically upon
     * class instantiation. These helpers will be available
     * to all other controllers that extend BaseController.
     *
     * @var array
     */
    protected $helpers = ['url', 'file', 'my_helper'];

Вам не нужно прикасаться к классу автозагрузки в вашем сценарии. Он используется для отображения всех различных пространств имен в вашем проекте.

app / Helpers / My_helper.php

if(!function_exists('chicking_helper')) {
       function chicking_helper(){
           return 'welcome to helper function';
       }
}

Документация Codeigniter 4 хелперы

0 голосов
/ 05 ноября 2019

Кажется, вы ошибочно объявили свои вспомогательные функции в autload.php.

Это должно быть объявлено примерно так:

$autoload['helper'] = array('file', 'url');

затем в вашем контроллере или модели просто вызовите помощникафункция, такая как default_method($parameter). Default_method - это имя вашей вспомогательной функции.

...