Pregunta

Estoy usando quercus para appengine. He intentado salvar una cadena php larga (> 1000 caracteres) pero appengine no me va a permitir que la mayor cadena sólo puede contener 500 caracteres. Así que he intentado usar tipo de datos de texto de appengine. Le permite a salvar, sin embargo, cuando puedo recuperar los datos de PHP, me devuelve un recurso () en lugar de tipo cadena.

Me explico con código:

<?php
$a = new Text("this is a long string that contains more than 1000 characters");
$b = "this is a long string that contains more than 1000 characters";
$e = new Entity('Article');
$e->setProperty('content', $a); // this works fine
// $e->setProperty('content', $b); // will complain as strlen($b) is > 500
$db = DatastoreServiceFactory::getDatastoreService();
$id = KeyFactory::keyToString($db->put($e)); // works ok, returns the ID of Entity saved
?>

Ahora bien de todos y dandy, pero cuando puedo recuperar el contenido de $ e, me va a devolver un recurso () Tipo de datos.

<?php
$q = new Query('Article');
$ps = $db->prepare($q);
foreach($ps->asIterable() as $i) {
    echo gettype($i->getProperty('content')); // this will echo Object, which when var_dump'd, gives me a resource() which is not convertible to php string, thus I can't get the human readable value
}
?>

¿Hay alguna solución para esto? Cualquier ayuda es muy apreciada ya que he estado tomando el pelo durante días ...

¿Fue útil?

Solución

Ok resolvió mediante la conversión de objeto java a cadena

$content = $i->getProperty('content');
if(is_object($content)) {
    if($content instanceof Text) {
        $content = $content->getValue();
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top