2016-11-30 23 views
1

誰でもオブジェクトの配列としての入力で 'findby'の使い方を教えてもらえますか?私はこのようなコードだ :"findby" doctrineを入力として配列として使用する方法は?

public function getIpOnline($acc) 
{ 
    try {      
     $rs = $this->em 
      ->getRepository($this->target) 
      ->findBy(array('login' => $acc)) 
     ; 
    } catch (Exception $e) {   
     echo "ERROR ".$this->target." DAO: ".$e; 
    }    
    var_dump($rs);exit(); 
    return $rs;  
} 

を、私はエラーました:事前に

Catchable fatal error: Object of class Character could not be converted to string in /var/www/xxx.com/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php on line 67 

感謝を。

答えて

2

$this->targetはおそらくオブジェクトですが、オブジェクトのクラスの名前を返す必要があります。

get_classを試してみましたか?

以上の単純Character::class :)

あなたが尋ねたように、これはget_classとあなたの例である:

public function getIpOnline($acc) 
{ 
    $nameClass = get_class($this->target); 

    try { 
     $rs = $this->em 
      ->getRepository($nameClass) 
      ->findBy(['login' => $acc]); 
    } catch (Exception $e) { 
     echo 'ERROR ' . $nameClass . ' DAO: ' . $e; 
    } 
    die(var_dump($rs)); 

    return $rs; 
} 
+0

uは私に教えてください可能性を参照してください?わかりません。 – Hanata

+0

@ハナタ関数内でgetRepository($ repoName);あなたはエンティティのクラス名を渡さなければなりません。たとえば、 'Product \ Entity \ Phone'と入力したり、get_class($ object)関数を使用したり、Product :: classを使用したりすることができます。これらのすべてのソートは、クラス/オブジェクトの名前空間で完全なクラス名を返します。 – Maytyn

0

インスタンス$nameは魔法の方法__toStringを持っているときは、場合にのみそれを行うことができます。

フォックス例:

class Name 
{ 
    public function __toString() 
    { 
     return 'ipad'; 
    } 
} 

$name = new Name(); 
$product = $entityManager->getRepository('Product')->findBy(['name' => $name]); 
0
public function getIpOnline($acc) 
{ 
try {      
    $rs = $this->em->getRepository($this->target)-findBy(['login' => $acc)); 

/* or u can also use findOneBy if expecting result is a single record and find corresponding data only based in $acc 
    $rs = $this->em->getRepository($this->target)-findOneByLogin($acc); 
*/ 

} catch (Exception $e) {   
    echo "ERROR ".$this->target." DAO: ".$e; 
}    
var_dump($rs);exit(); 
return $rs;  

}

も詳細にhttp://symfony.com/doc/current/doctrine.html#fetching-objects-from-the-database

関連する問題