Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类别';WriteRequestBatch';Codeigniter-AWS php SDK中未找到错误_Php_Codeigniter_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

类别';WriteRequestBatch';Codeigniter-AWS php SDK中未找到错误

类别';WriteRequestBatch';Codeigniter-AWS php SDK中未找到错误,php,codeigniter,amazon-web-services,amazon-dynamodb,Php,Codeigniter,Amazon Web Services,Amazon Dynamodb,对不起,各位,我是AWS SDK的新手,但我需要使用WriteRequestBatch将大量25条记录添加到一个表中 我正在使用Codeigniter并尝试使用以下代码: function new_save($data_set) { $tableName = 'my-table'; $dynamodb = $this->aws_sdk->dynamo_db(); $data_to_save = $this->create_dynamo_data(

对不起,各位,我是AWS SDK的新手,但我需要使用WriteRequestBatch将大量25条记录添加到一个表中

我正在使用Codeigniter并尝试使用以下代码:

function new_save($data_set)
    {
    $tableName = 'my-table';
    $dynamodb = $this->aws_sdk->dynamo_db();
    $data_to_save = $this->create_dynamo_data($data_set);
    $putBatch = WriteRequestBatch::factory($dynamodb);
    foreach ($data_to_save as $record)
    {
        $record = Item::fromArray($item);
        $putBatch->add(new PutRequest($record, $tableName));
    }
    $putBatch->flush();
}
但它以以下错误停止:

PHP Fatal error:  Class 'WriteRequestBatch' not found in (...)
我刚刚开始使用新的SDK,我能够获取数据并更新表吞吐量设置等,只有这项任务完全失败:-(

顺便说一句,这是我在这里的第一篇文章,我试图在谷歌等搜索答案,但只找到了我已经使用过的相同的示例代码

我创建了这样一个库:

require('/var/www/xx-aslan/aws_sdk_ver2/aws-autoloader.php');
use Aws\Common\Aws;

class Aws_sdk
{
// Create a service locator using a configuration file
private static $aws = array(
        'key'    => '***********',
        'secret' => '******',
        'region' => '****'
);

function aws()
{
    return Aws::factory(self::$aws);
}

function dynamo_db()
{
    $aws = $this->aws();
    return $aws->get('DynamoDb');
}
我将其加载到模型中,其中函数new_save()是:

有人能帮我吗? 我知道这可能是个新手问题,对不起:-(

提前谢谢!
Kasia

如果改变不起作用:

$this->load->library('aws_sdk');

正如我在评论中所建议的,试着像这样称呼它:

$putBatch = aws_sdk->WriteRequestBatch::factory($dynamodb);
每次使用
aws_sdk
库时都会这样做


希望这有帮助。

这不是AWS SDK或CI的问题。这些类是命名空间的,因此您必须导入它们以使其可用

在引用它们的同一文件中,在文件顶部/附近添加
use
语句(在任何类或函数声明之外)


哪里定义了
WriteRequestBatch
?是否在
aws sdk
中?可能尝试将
$this->load->library('aws_sdk');
更改为
$this->load->library('aws_sdk'))
?我只有
WriteRequestBatch
有同样的问题,而您的解决方案
无法加载请求的类:Aws_sdk
您能看看我的问题吗?
$this->load->library('Aws_sdk');
$putBatch = aws_sdk->WriteRequestBatch::factory($dynamodb);
<?php

// ...

use Aws\DynamoDb\Model\BatchRequest\PutRequest;
use Aws\DynamoDb\Model\BatchRequest\WriteRequestBatch;
use Aws\DynamoDb\Model\Item;

// ...

function new_save($data_set)
{
    // ...
    $putBatch = WriteRequestBatch::factory($dynamodb);
    // ...
}

// ...