标签: codeigniter-4

哎呀!我们似乎遇到了障碍。请稍后再试

哎呀!我们似乎遇到了障碍。请稍后再试。

Codeigniter 4 在运行 CI4 应用程序时显示错误,我该如何解决?

变化:

public $baseURL = 'http://ci.local';


public $baseURL = 'http://localhost:8080';
public $indexPage = '';
Run Code Online (Sandbox Code Playgroud)

codeigniter-4

17
推荐指数
8
解决办法
4万
查看次数

如何从 Codeigniter 4 中的 url 中删除 public/index.php/

我想要像www.sample.com/controller这样的普通 URL不是 www.sample.com/public/index.php/controller

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

我的 .htaccess 文件

php codeigniter-4

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

CodeIgniter 4 重定向功能不起作用

注销后,我尝试重定向到主页。我尝试了几种方法,但没有重定向。

class User extends BaseController
{
    public function __construct()
    {
        helper('url');
    }
Run Code Online (Sandbox Code Playgroud)

用于注销功能。我用了三种方式

redirect('/');
Run Code Online (Sandbox Code Playgroud)

或者

header("Location:".base_url());
Run Code Online (Sandbox Code Playgroud)

或者

route_to('/');
Run Code Online (Sandbox Code Playgroud)

php codeigniter-3 codeigniter-4

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

如何在 CodeIgniter 4 中使用子目录控制器?

我需要有关在 CodeIgniter 4 中使用子目录控制器的帮助。

我只是因为某种原因无法让它工作。

这是 URL,例如: www.example.com/admin/dashboard

在控制器文件夹中,我创建了一个名为 的文件夹Admin和一个名为Dashboard.php.

我在以下代码中使用了此代码Dashboard.php

namespace App\Controllers;

class Dashboard extends BaseController
{
    public function index()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试将类名更改为AdminDashboard, Admin_Dashboard,几乎每个逻辑名称,但每次出现 404 错误时,都会说:

找不到控制器或其方法:App\Controllers\Admin\Dashboard::index

我知道文件本身已成功加载,但我认为我没有正确声明类名并且它不断向我抛出那些 404 错误。

不幸的是,CI4 的文档没有提供关于类名应该被称为什么的任何信息......


更新 #1

我设法通过改变一些事情来使它工作:

namespace App\Controllers\Admin;
use CodeIgniter\Controller;

class Dashboard extends Controller
{
    public function index()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

但现在它不会扩展BaseController我为我的应用程序构建的一些核心功能。

有关如何使其扩展的任何想法BaseController

我必须承认,我对命名空间的了解还不多,所以这可能是我犯错的原因。

controller namespaces codeigniter codeigniter-4

6
推荐指数
1
解决办法
4777
查看次数

在CodeIgniter 4中保存到数据库后如何获取插入ID

我正在使用 Codeigniter 4。

并像这样插入新数据,

$data = [
        'username' => 'darth',
        'email'    => 'd.vader@theempire.com'
];

$userModel->save($data);
Run Code Online (Sandbox Code Playgroud)

这里提到:CodeIgniter's Model reference

它正在执行插入操作。但是我还没有找到任何关于在插入后获取插入 id 的参考。

请帮忙!提前致谢。

php mysql codeigniter-4

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

未重定向到 Codeigniter 4 中的特定 URL

为什么每当我通过 Codeigniter 4 控制器的构造函数重定向某些内容时就不起作用?

<?php namespace App\Controllers\Web\Auth;

class Register extends \App\Controllers\BaseController
{
    function __construct()
    {
        if(session('username')){
            return redirect()->to('/dashboard');
        }
    }
    public function index()
    {
        // return view('welcome_message');
    }
}
Run Code Online (Sandbox Code Playgroud)

但如果我把它放在索引中,它就会按预期工作。

public function index()
{
        if(session('username')){
            return redirect()->to('/dashboard');
        }
}
Run Code Online (Sandbox Code Playgroud)

问题是,我不想直接在索引内使用它,因为它需要同一文件的其他方法。

php codeigniter codeigniter-4

5
推荐指数
1
解决办法
8370
查看次数

codeigniter 4 设置会话变量 $session = \Config\Services::session(); 全球

在 codeigniter 4 中,根据文档,我们必须将库加载为

$session = \Config\Services::session();

如果我把它写在控制器名称上面

<?php
namespace App\Controllers;

    $session = \Config\Services::session();

    class Home extends BaseController
    {

    }
Run Code Online (Sandbox Code Playgroud)

我无法在任何函数中访问 $session 变量,即使我在 __construct 中编写它,它也无法在任何函数中访问,如果我编写任何函数,那么只有它可以工作,但我想全局设置它。

php codeigniter codeigniter-4

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

CodeIgniter 4 过滤器 - 退出并响应

我有一个使用 CodeIgniter 4 的项目。

我有一个before过滤器:

public function before(RequestInterface $request){

    $auth = $request->getHeader("Authorization");
    if($auth == null){

        $response = Services::response();
        $response->setStatusCode(401);
        $response->setHeader("WWW-Authenticate", "Bearer Token");
        $response->setBody("{\"error\": \"unauthorized\"}");

        exit;

    }

}
Run Code Online (Sandbox Code Playgroud)

如果没有授权,我想停止请求并返回$response给客户端。

现在请求已停止,因为exit.

但作为答案我得到了200 OK并且没有body content

我如何发出exit请求并将其设置$response给客户端?

php codeigniter codeigniter-4

5
推荐指数
1
解决办法
3567
查看次数

调用未定义的函数 CodeIgniter\locale_set_default() - Xampp

我正在尝试使用 Xampp 设置 Codeigniter4,但是当调用CodeIgniter4 框架文件http://localhost/projectfolder/public/index.php中所述的公共地址时,出现下一个错误:README.md

<br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function CodeIgniter\locale_set_default() in
C:\xampp\htdocs\codeigniter4\system\CodeIgniter.php:184
Stack trace:
#0 C:\xampp\htdocs\codeigniter4\system\bootstrap.php(181): CodeIgniter\CodeIgniter-&gt;initialize()
#1 C:\xampp\htdocs\codeigniter4\public\index.php(36): require('C:\\xampp\\htdocs...')
#2 {main}
thrown in <b>C:\xampp\htdocs\codeigniter4\system\CodeIgniter.php</b> on line <b>184</b><br />
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个解决方案,但它对我不起作用。

有人知道如何解决吗?

xampp codeigniter codeigniter-4

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

Codeigniter 4 类“Locale”未找到

如果您有解决此 codeigniter4 错误的方法,请帮助在此处输入图像描述

Codeigniter4 主页无法显示但显示该错误

codeigniter-4

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