你好,我是dynamo db和laravel的新手。在互联网上搜索后,我发现了很多为 laravel 设置 dynamo db 的方法,我尝试了每种方法。但是在 Laravel 中设置 FOR 使用 dynamo DB 后,我找不到任何教程或任何示例代码,以便我可以进一步使用它。我用于dynamo db设置的一些站点链接:
https://github.com/aws/aws-sdk-php-laravel
https://github.com/baopham/laravel-dynamodb
https://github.com/aws/aws-sdk-php
http://www.techigniter.in/tutorials/dynamodb-session-driver-for-laravel-5/
还有更多的网站,都使用自己不同的方法,但对我的帮助不够。
其实很简单。您可以将此SDK用于Laravel:https://github.com/aws/aws-sdk-php-laravel
此链接可以帮助您了解如何使用它:https://stackoverflow.com/a/32594321/9845807
use AWS;
use Config;
public function dynamoDBConnect()
{
//Fetching credentials for DynamDB
$config = Config::get('aws');
//Inserting value with tableName: "Logs" and columnName: "userId"
$client = AWS::createClient('DynamoDb');
$iterator = $client->getIterator('Query', array(
'TableName' => 'Logs',
'KeyConditions' => array(
'userId' => array(
'AttributeValueList' => array(
array('N' => '1202')
),
'ComparisonOperator' => 'EQ'
)
)
));
//Fetching the records.
$result = $client->getItem(array(
'ConsistentRead' => true,
'TableName' => 'Logs',
'Key' => array(
'userId' => array('N' => '1201'),
'Name' => array('S' => 'Name string')
)
));
}
有 2 个主动支持的软件包(可以)充当 Laravel 的服务提供商:
- https://github.com/baopham/laravel-dynamodb
- https://github.com/kitar/laravel-dynamodb
两者都有用法示例,并提供用于创建可以使用 Eloquent 方法或使用查询生成器的模型的选项。
完整文档: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.PHP.html
以下方法将连接到 DynamoDB 并检索数据。将ACCESS_KEY、SECRET_KEY、区域TABLE_NAME更改为您的。
我的 DynamoDB 数据如下所示, {'2019-11-05':'12:30-13:00', '2019-11-05':'13:30-14:00'}
public function getDataFromDynamoDb() {
$credentials = new Aws'Credentials'Credentials(ACCESS_KEY, SECRET_KEY);
$client = new Aws'Sdk([
'version' => 'latest',
'region' => REGION,
'credentials' => $credentials
]);
$dynamodb = $client->createDynamoDb();
$marshaler = new Marshaler();
$tableName = 'TABLE_NAME';
$eav = $marshaler->marshalJson('{":Date": "2019-11-05"}');
$params = [
'TableName' => $tableName,
'KeyConditionExpression' => '#Date = :Date',
'ExpressionAttributeNames'=> [ '#Date' => 'Date' ],
'ExpressionAttributeValues'=> $eav
];
try {
$result = $dynamodb->query($params);
foreach ($result['Items'] as $marketData) {
echo $marshaler->unmarshalValue($marketData['Date']) . ': ' .
$marshaler->unmarshalValue($marketData['Value']) . "'n";
}
} catch (DynamoDbException $e) {
echo "Unable to query:'n";
echo $e->getMessage() . "'n";
}}