codeigniter - Codeigniter 4:从 BaseController 获取值到自定义助手
问题描述
似乎get_instance()
不再在 Codeigniter 4 中工作。但我需要从 BaseController 获得一些价值到我的 custom_helper。这是我的代码片段:
基本控制器.php
<?php namespace App\Controllers;
class BaseController extends Controller
{
protected $helpers = ['custom'];
public function initController(...) {
parent::initController(...);
$myconfig = config('MyConfig');
$this->languages = $myconfig->languages;
$this->selected_lang = $myconfig->site_lang;
$lang_segment = $this->request->uri->getSegment(1);
foreach ($this->languages as $lang) {
if ($lang_segment == $lang->short_form) {
$this->selected_lang = $lang;
$this->lang_base_url = base_url() . $lang->short_form . "/";
}
}
}
}
// Here I need to pass ($this->selected_lang) value to my custom_helper.
custom_helper.php
<?php
if (!function_exists('trans')) {
function trans($string)
{
$language_translations = get_translation_array($this->selected_lang->id);
// --> Here I want to get ($this->selected_lang->id) value from BaseController.
if (!empty($language_translations[$string])) {
return $language_translations[$string];
}
return "";
}
}
function get_translation_array($land_id)
{
.......
}
我不确定这是否可能!我是CI4的新手。请建议是否有任何解决方案。提前致谢。
解决方案
而不是调用 BaseController 你应该在助手中做所有事情
if (!function_exists('trans')) {
function trans($string)
{
$myconfig = config('MyConfig');
$languages = $myconfig->languages;
$selected_lang = $myconfig->site_lang;
$language_translations = get_translation_array($selected_lang->id);
if (!empty($language_translations[$string])) {
return $language_translations[$string];
}
return "";
}
}
虽然我不知道你在做什么,但如果不再引起我的注意,我希望这会对你有所帮助
推荐阅读
- python - 当在 OptionMenu 上选择一个选项并按下一个按钮然后为该特定选项发生某些事情时,我该如何做到这一点
- php - 为什么即使 php 版本正确,我也不能在 ssh 上运行 composer install?
- image - 如何在 Flutter 中使用带有 CachedNetworkImage 的视差效果?
- amazon-web-services - AWS S3:如果我们在 S3 存储桶中获得大于 10 MB 的对象,则需要发送通知
- php - 新的 mongoDB PHP 驱动程序:使用 Limit 和 Skip 以及 multipal OR 条件查询不同的记录
- python - 为什么 np.where 没有返回预期值
- java - 如何在每个 recyclerview 项目之间添加延迟?
- python - 如何遍历 Pandas.DataFrame 中的列并将函数的结果附加到同一行?
- javascript - How to use react-native-screens with react-navigation v4?
- javascript - 即使在定义绑定(this.submit)之后也无法读取未定义的属性“setState”