标签: codeigniter-4

如何在 CodeIgniter 4 中创建和加载新的帮助程序

我想在助手中创建新函数,但它仍然失败: Call to undefined function

app/Helper/Text_helper.php我在使用中保存我的助手namespace App\Helpers; 并使用 BaseController 加载助手protected $helpers = ['text'];

参考: https: //codeigniter4.github.io/userguide/general/helpers.html#extending-helpers 但它仍然不起作用

php codeigniter codeigniter-4

3
推荐指数
1
解决办法
6376
查看次数

Codeigniter 4 中 $this->db->last_query() 的等价物是什么?

我刚开始学习 Codeigniter 4。我的查询总是生成 NULL,我不知道为什么。如何像 Codeigniter 3 一样查看生成的 SQL Select 命令?

在 Codeigniter 3 中,此命令可以完成以下工作:

echo $this->db->last_query();
Run Code Online (Sandbox Code Playgroud)

这是我在 Codeigniter 4 中的控制器代码,我需要它来获取生成的查询:

$cityModel = new CityModel();
$cities = $cityModel
    ->select('city.name AS cityName')
    ->select('county.name AS countryName')
    ->select('province.name AS provinceName')
    ->join('province', 'city.province_id = province.id', 'left')
    ->join('county', 'city.county_id = county.id', 'left')
    ->result();
Run Code Online (Sandbox Code Playgroud)

更新: 我试过这段代码,但它返回一个空字符串:

var_export((string)$cityModel->db->getLastQuery());
Run Code Online (Sandbox Code Playgroud)

php activerecord codeigniter codeigniter-4

2
推荐指数
3
解决办法
5259
查看次数

如何在 codeigniter 4 中使用 ajax

我正在使用 codeigniter-4 版本并尝试在导航栏中自动搜索。我正在尝试使用 ajax 将 post 方法中的数据发送到控制器中。但它不起作用。而且 codeigniter 4 没有描述 ajax 的细节。在我的代码示例输入框下方是 -

<input class="form-control mr-sm-2" type="search" placeholder="<?= lang('nav.search'); ?>" aria-label="Search" name='s' id="seachBox">
Run Code Online (Sandbox Code Playgroud)

ajax 代码是 -

     $.ajax({  
       url:<?= base_url('search'); ?>,
       headers:{'X-Requested-With':'XMLHttpRequest'},
       data:{query:query},
       success:function(data){
             alert(data);
       }  
    });
Run Code Online (Sandbox Code Playgroud)

我的控制器是-

<?php
class Search extends BaseController
{
    public function __construct()
    { 
        helper(['common_helper','aws_helper']);
    }

    public function index(){

        echo 'string';
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

路线是——

<?php 

$routes->get('/search', 'Search::index');

?>
Run Code Online (Sandbox Code Playgroud)

php ajax jquery codeigniter codeigniter-4

2
推荐指数
1
解决办法
8447
查看次数

如何为 Codeigniter 4 中的所有页面设置特定语言

我已经在“ app/Language ”文件夹中翻译了 2 种语言并设置了语言切换器。example.com/en目前翻译对于基本网址(如和 )效果很好example.com/sp

我的问题是当访问者访问其他页面时,就像/post/cats/123我如何为所有视图页面设置语言一样。codeigniter 4 中语言设置的标准方法是什么?

语言文件夹 -

在此输入图像描述

语言切换代码。

<div class="dropdown-menu" aria-labelledby="navbarDropdown">
    <a class="dropdown-item" href="<?= base_url('en') ?>">English</a>
    <a class="dropdown-item" href="<?= base_url('sp') ?>">Spanish</a>
</div>
Run Code Online (Sandbox Code Playgroud)

路线-

$routes->get('/{locale}', 'Language::index');
Run Code Online (Sandbox Code Playgroud)

语文课——

class Language extends BaseController
{

    public function index()
    {
         $locale = $this->request->getLocale();
         $this->request->setLocale($locale);
         return redirect()->back();
    }
}
Run Code Online (Sandbox Code Playgroud)

php codeigniter codeigniter-4

2
推荐指数
1
解决办法
1万
查看次数

为什么哎呀!codeigniter-4 中显示的错误

我只是将 codeingiter 4 复制到我的 XAMPP for Linux 7.4.3 中,它具有 PHP 版本 7.4.3,但出现类似 Whoops 的错误

我们似乎遇到了障碍。请稍后再试...

codeigniter-4

2
推荐指数
1
解决办法
6154
查看次数

提交表单后 Codeigniter 4 错误 404 路由有问题

我使用 Codeigniter 4

我已经在 Routes.php 中添加了

$routes->get('/register', 'Auth::register');
Run Code Online (Sandbox Code Playgroud)

这是Auth.php

    public function register()
    {
        $data['page_title']   = "Register";
        if ($this->request->getMethod() === 'post') {
            $email = $this->request->getPost('email');
            if ($this->validate([
                'email' => 'required',
                'pwd'  => 'required',
                'repwd' => 'required|matches[pwd]'
            ])) {
                $pwd = $this->request->getPost('pwd');
                $repwd = $this->request->getPost('repwd');
                $ip = $this->request->getIPAddress();
                return redirect()->to('/');
            }
            $data['email'] = $email;
            $this->session->setFlashdata('isFormError', true);
        }

        return view('auth/register', $data);
    }
Run Code Online (Sandbox Code Playgroud)

for view 只是简单的 html 表单,带有 post 方法。表单提交后,我收到错误:

404 - File Not Found
Controller or its method is not found: \App\Controllers\Register::index …
Run Code Online (Sandbox Code Playgroud)

php codeigniter-4

2
推荐指数
1
解决办法
2512
查看次数

PHP 警告:模块“gd”已在第 0 行未知加载

我该如何修复PHP Warning: Module 'gd' is already loaded in Unknown on line 0

我正在使用 PHP、Composer 和 CodeIgniter 4。

php composer-php codeigniter-4

2
推荐指数
1
解决办法
5535
查看次数

如何使用 CodeIgniter 4 打开视图内的视图?

我是 CodeIgniter 4 的新手。在 CodeIgniter 3 中,我们可以在另一个视图中使用一个视图,如下所示:

<head>
      <?php this->load->view("containers/head"); ?>
</head>
Run Code Online (Sandbox Code Playgroud)

但同样不适用于 CodeIgniter 4,我找不到它。有什么建议么?

祝你有美好的一天!

codeigniter-4

2
推荐指数
1
解决办法
3607
查看次数

Codeigniter - 错误 - 没有要更新的数据

我本来要更新数据库,但收到错误“没有要更新的数据”。这是我的脚本;

我创建了一个简单的切换来更新数据库。切换使用户处于活动状态 (is_active=1) 或非活动状态 (is_active=0)。我遇到的问题是,虽然对象从 1 更改为 0 或 0 更改为 1,但当我将其传递给模型时,它会返回错误“没有要更新的数据”。方法如下;

命名空间 App\Controllers\Admin;

使用应用程序\实体\用户;

class Users 扩展了 \App\Controllers\BaseController { private $model;

public function __construct()
{
    $this->model = new \App\Models\UserModel;
}



      public function toggle_user_is_active($id)
      {
      $users = $this->model->where('id', $id)->first();  // get the record

     // if the current user is ACTIVE, then set it to DEACTIVE
     if ($users->is_active == 1) {
         $users->is_active = 0; 
         $this->model->save($users));  // gives an error, nothing to update
         return redirect()->to('/Admin/Users/index')
                     ->with('info', 'Success - User deactivated');
     } else …
Run Code Online (Sandbox Code Playgroud)

php codeigniter codeigniter-4

2
推荐指数
1
解决办法
4856
查看次数

CodeIgniter 4 - 关闭调试器工具栏的显示 - 不更改 CI_ENVIRONMENT

CodeIgniter 4 - 如何关闭调试器工具栏的显示- 不更改CI_ENVIRONMENT

将环境变量CI_ENVIRONMENT更改为生产环境将关闭调试工具栏,但也会抑制错误。我仍然希望看到错误 - 但我不想在“开发”模式下看到所有视图底部的调试工具栏。

debugging codeigniter-4

2
推荐指数
1
解决办法
4574
查看次数