$this->request->isAJAX() codeigniter 4.1.1 中的未定义方法问题出在哪里?



我的控制器有问题,当我尝试调用request->isAJAX()时,程序返回错误undefined method注意:我使用codeigniter 4.1.1

<?php
namespace AppControllers;
use AppModelsMruang;
class Ruang extends BaseController
{
protected $jenis;
public function __construct()
{
$this->jenis = new Mruang();
}
public function index()
{
$data = [
'titel' => 'Jenis Ruang'
];
return view('ruang/index', $data);
}
public function tampil()
{
if ($this->request->isAJAX()) {
$data = [
'ruang' => $this->jenis->findAll(),
'btn'   => true
];
$msg = [
'data' => view('ruang/data', $data)
];
echo json_encode($msg);
}
}
}

我在CI 4.1.1安装的本地机器上运行您的代码,它运行正常,至少$this->request->isAJAX()按预期工作。

查看您的BaseController并将其与默认值进行比较。将默认代码粘贴到

下面
<?php
namespace AppControllers;
use CodeIgniterController;
use CodeIgniterHTTPRequestInterface;
use CodeIgniterHTTPResponseInterface;
use PsrLogLoggerInterface;

class BaseController extends Controller
{
protected $helpers = [];
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
// Do Not Edit This Line
parent::initController($request, $response, $logger);
}
}

我也想建议你看看Mruang模型是否有findAll()方法。

最新更新