2016-09-14 2 views
0

Это мой PHP кодAzure Table Storage PHP Error

<?php 
// Load Azure Drivers 
require_once '../vendor/autoload.php'; 

use WindowsAzure\Common\ServicesBuilder; 
use MicrosoftAzure\Storage\Common\ServiceException; 
use MicrosoftAzure\Storage\Table\Models\QueryEntitiesOptions; 


// Connection String 
$connectionString = 'DefaultEndpointsProtocol=https;AccountName=<account_name>;AccountKey=<account_key>=='; 

// Create table REST proxy. 
$tableRestProxy = ServicesBuilder::getInstance()->createTableService($connectionString); 


$user_input = "Username eq '<user>'"; 

try { 
    $result = $tableRestProxy->queryEntities("<table>", $user_input); 
} 
catch(ServiceException $e){ 
    echo "<h1>Error querying, please contact Admin.</h1>"; 
    die(); 
} 

$entities = $result->getEntities(); 
foreach($entities as $entity){ 
    echo $entity; 
} 
?> 

Я цензура всей информации о соединении и таблицы. Но все работает, когда я использую демо-код. Но я хочу получить полную строку. Когда я это выполню, я получаю эту ошибку

Catchable fatal error: Object of class MicrosoftAzure\Storage\Table\Models\Entity could not be converted to string 

Любые идеи?

ответ

0

Вообще-то, вы пытаетесь создать echo объект, который поднял эту проблему. Поскольку $entity в вашем заявлении цикла является объектом, вы не можете напрямую его echo.

queryEntities() возвращает QueryEntitiesResult объект, а затем вы вызываете функцию getEntities(), которая возвращает Entity объекты в массиве.

Таким образом, вы можете использовать функции $entity->getXXXX() или $entity->getPropertyValue({key}), чтобы получить свойства в объекте хранилища таблиц.

Вы можете обратиться к a simple sample за быстрый взгляд.

+0

Я понял, что $ entity-> getProperty ("") позволит мне получить свойство, но есть ли все, чтобы перечислить все свойства сразу, не вызывая их по одному? –

+0

В настоящее время такой функции нет –

+0

Хорошо, спасибо, мне удалось использовать foreach и проанализировать его в json-массиве –