2017-01-04 9 views
1

私はDQL Symfony 2に関して問題があります。私は選択した最初の値を設定したいと思います。値はブール値ですが、これはできません。これは私のコードです:DQL Symfony 2、ブール値を設定

public function findAllMenuListForMenuGroup(){ 
    $query = $this->getEntityManager() 
     ->createQueryBuilder() 
     ->select('a.id, a.lft, a.lvl, a.rgt, a.name, a.title, true as value, a.description') 
     ->from(Menu::class,'a') 
     ->orderBy('a.root, a.lft','ASC') 
     ->getQuery(); 
    return $query->getArrayResult(); 
} 

このコードのエラーですが、私は問題を知らない、「値として真」のコードを見て、私は問題があると感じ、誰も私を助けることができますか?

エラーは次のとおりです。

[Syntax Error] line 0, col 51: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got 'true'

/** 
* @ORM\Id() 
* @ORM\Column(name="id", type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @ORM\ManyToMany(targetEntity="Menu", inversedBy="menuGroup") 
* @ORM\JoinTable(name="administration_menu_group_details") 
*/ 
private $menu; 

/** 
* @ORM\OneToMany(targetEntity="User", mappedBy="menuGroup") 
*/ 
private $user; 

/** 
* @var string 
* 
* @ORM\Column(name="name", type="string", length=255, unique=true) 
*/ 
private $name; 

/** 
* @var string 
* 
* @ORM\Column(name="description", type="string", length=1000) 
*/ 
private $description; 
+0

エラーメッセージを投稿できますか? – Matteo

+0

orderbyメソッドを使用すると、指定できるフィールドは1つだけです。 addorderbyメソッドを使用して別の1つを追加することができます – Matteo

+0

[構文エラー]行0、列51:エラー:期待される識別変数|スカラー式| AggregateExpression |関数宣言| PartialObjectExpression | "(" Subselect ")" | CaseExpression、 'true'を取得 –

答えて

0

1 as value 

代わりの

true as value 

おそらくあなたは、文字 "で囲む必要がありますしてみてください

をまた、あなたは次のようにaddOrderByの代わりに、ORDERBYを使用する必要があります。:

->addOrderBy('a.root','ASC') 
    ->addOrderBy('a.lft','ASC') 

の代わりに:このヘルプ

+0

あなたのsugestionが動作しますが、私は型のデータを取得するブール値ではない文字列です。私はブール値が必要です –

+0

私は '' 'なしで私たちと一緒にこんにちは@RachmatChang? – Matteo

+0

私はちょうど ''を使用して使用しないでくださいと結果はまだです@Matteo –

1

Doctrineはそれ自身の別名を使用します。ここでは "as"を使用することはできません。

$query = $this->getEntityManager() 
     ->createQueryBuilder() 
     ->select('a.id, a.lft, a.lvl, a.rgt, a.name, a.title, a.true, a.description') 
     ->from(Menu::class,'a') 
     ->orderBy('a.root,'ASC') 
     ->orderBy('a.lft,'ASC') 
     ->getQuery(); 
    return $query->getArrayResult(); 
+0

まだ@eeXBeeエラー –

+0

あなたのエンティティを喜ばせることはできますか? – eeXBee

+0

は "true"のプロパティですか? – eeXBee

0

がDQLでそれをしないでください

->orderBy('a.root, a.lft','ASC') 

希望。 オブジェクトに常にtrueを返すメソッドを追加します。次に、DQLからselectを削除します。

+0

私に例を与えてください –

+0

public function getFoo(){trueを返します。 –

関連する問題