哎呀!我们似乎遇到了障碍。请稍后再试。
Codeigniter 4 在运行 CI4 应用程序时显示错误,我该如何解决?
变化:
public $baseURL = 'http://ci.local';
public $baseURL = 'http://localhost:8080';
public $indexPage = '';
Run Code Online (Sandbox Code Playgroud) 我想要像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 文件
注销后,我尝试重定向到主页。我尝试了几种方法,但没有重定向。
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) 我需要有关在 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 的文档没有提供关于类名应该被称为什么的任何信息......
我设法通过改变一些事情来使它工作:
namespace App\Controllers\Admin;
use CodeIgniter\Controller;
class Dashboard extends Controller
{
public function index()
{
}
}
Run Code Online (Sandbox Code Playgroud)
但现在它不会扩展BaseController我为我的应用程序构建的一些核心功能。
有关如何使其扩展的任何想法BaseController?
我必须承认,我对命名空间的了解还不多,所以这可能是我犯错的原因。
我正在使用 Codeigniter 4。
并像这样插入新数据,
$data = [
'username' => 'darth',
'email' => 'd.vader@theempire.com'
];
$userModel->save($data);
Run Code Online (Sandbox Code Playgroud)
这里提到:CodeIgniter's Model reference
它正在执行插入操作。但是我还没有找到任何关于在插入后获取插入 id 的参考。
请帮忙!提前致谢。
为什么每当我通过 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)
问题是,我不想直接在索引内使用它,因为它需要同一文件的其他方法。
在 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 中编写它,它也无法在任何函数中访问,如果我编写任何函数,那么只有它可以工作,但我想全局设置它。
我有一个使用 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给客户端?
我正在尝试使用 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->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)
我已经尝试过这个解决方案,但它对我不起作用。
有人知道如何解决吗?
如果您有解决此 codeigniter4 错误的方法,请帮助在此处输入图像描述
Codeigniter4 主页无法显示但显示该错误