我想在助手中创建新函数,但它仍然失败:
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 但它仍然不起作用
我刚开始学习 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) 我正在使用 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) 我已经在“ 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) 我只是将 codeingiter 4 复制到我的 XAMPP for Linux 7.4.3 中,它具有 PHP 版本 7.4.3,但出现类似 Whoops 的错误
!
我们似乎遇到了障碍。请稍后再试...
我使用 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 Warning: Module 'gd' is already loaded in Unknown on line 0?
我正在使用 PHP、Composer 和 CodeIgniter 4。
我是 CodeIgniter 4 的新手。在 CodeIgniter 3 中,我们可以在另一个视图中使用一个视图,如下所示:
<head>
<?php this->load->view("containers/head"); ?>
</head>
Run Code Online (Sandbox Code Playgroud)
但同样不适用于 CodeIgniter 4,我找不到它。有什么建议么?
祝你有美好的一天!
我本来要更新数据库,但收到错误“没有要更新的数据”。这是我的脚本;
我创建了一个简单的切换来更新数据库。切换使用户处于活动状态 (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) CodeIgniter 4 - 如何关闭调试器工具栏的显示- 不更改CI_ENVIRONMENT?
将环境变量CI_ENVIRONMENT更改为生产环境将关闭调试工具栏,但也会抑制错误。我仍然希望看到错误 - 但我不想在“开发”模式下看到所有视图底部的调试工具栏。
codeigniter-4 ×10
php ×7
codeigniter ×5
activerecord ×1
ajax ×1
composer-php ×1
debugging ×1
jquery ×1