Php 为什么加载功能在codeigniter中不起作用

Php 为什么加载功能在codeigniter中不起作用,php,codeigniter,codeigniter-4,Php,Codeigniter,Codeigniter 4,这段代码不工作,不仅如此,当我使用This->load->library('email')或它的错误显示为 "message": "Undefined property: App\\Controllers\\Epicureser1::$load", 这是我目前使用的代码 $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|p

这段代码不工作,不仅如此,当我使用This->load->library('email')或它的错误显示为

"message": "Undefined property: App\\Controllers\\Epicureser1::$load", 
这是我目前使用的代码

$config['upload_path']          = './uploads/';
$config['allowed_types']        = 'gif|jpg|png';
$config['max_size']             = 100;
$config['max_width']            = 1024;
$config['max_height']           = 768;
$this->load->library('upload',$config);

您显示的代码不是Codeigniter 4的一部分,而是Codeigniter 3的一部分

这是上传文件的老方法。如果您正试图实现上传文件,那么可以使用IncomingRequest类来完成

$files = $request->getFiles();

// Grab the file by name given in HTML form
if ($files->hasFile('uploadedFile'))
{
    $file = $files->getFile('uploadedfile');

    // Generate a new secure name
    $name = $file->getRandomName();

    // Move the file to it's new home
    $file->move('/path/to/dir', $name);

    echo $file->getSize('mb');      // 1.23
    echo $file->getExtension();     // jpg
    echo $file->getType();          // image/jpg
}
那不是真正的图书馆。如果您正在寻找的是如何在CodeIgniter4中加载库,那么这实际上非常简单。假设您想使用电子邮件库

首先,您应该在app/Config/email.php上配置电子邮件设置

要发送电子邮件,您只需访问电子邮件服务:

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

$email->setFrom('your@example.com', 'Your Name');
$email->setTo('someone@example.com');
$email->setCC('another@another-example.com');
$email->setBCC('them@their-example.com');

$email->setSubject('Email Test');
$email->setMessage('Testing the email class.');

$email->send();
现在让我们假设您想要创建一个自定义库,为此您应该在app/Libraries文件夹中创建类

<?php

namespace App\Libraries;

class Custom
{

    public function myFunction()
    {
        return true;
    }

}
正如维拉尔在他的评论中所说:


如果您使用的是Codeigniter 4,那么超级对象$this 用于加载各种库、模型等。。。已被删除。 你应该看看 codeigniter.com/user\u guide/installation/upgrade\u 4xx.html即使不是 完全完成它将指导您完成主要更改


显然,
Epicureser1
没有
load
属性。要么是在错误的对象上调用该属性,要么是在代码尝试使用该属性时尚未设置该属性。也就是说,你给我们的工作机会很少。我们不知道“$this”在上下文中是什么,除了它的类名可能是
App\Controllers\Epicureser1
为什么是这样,但是在codeigniter文档中调用库上传我猜
Epicureser1
没有扩展正确的类或者缺少一个应该添加该属性的特性。但是如果没有看到Epicurer1中的代码,就很难说了。如果您发布了
Epicureser1
(至少是顶部)的代码,我们可能会发现更多。如果您使用的是Codeigniter 4,超级对象
$this
,用于加载各种库、模型等。。。已被删除。你应该看看,即使它还没有完全完成,它也会引导你完成主要的更改。是的,我正在使用codeigniter 4,但如何使用它来获取电子邮件和上载库我的目标是将base64解码图像保存到文件夹中
$custom = new \App\Libraries\Custom();
$giveMeTrue = $custom->myFunction();