2013-01-31 2 views
0

프로젝트에있는 종이 테이블에 연결되어있는 종이이 있습니다. 이 엔티티에는 필드가 이고입니다.존재하는 필드 쿼리하기

문제는 필드 제목이 html 태그을 내부에 가질 수 있으므로이 필드에 대한 쿼리를 작성해야합니다. 질의는 이고 html 태그가없는 경우입니다. title_without_html :

protected title_without_html; 

/** 
* Get title_without_html 
* 
* @return text 
*/ 
public function getTitle_without_html() 
{ 
    return strip_tags($this->title); 
} 

또한 생성자에서, 나는 title_without_html을 만드는 오전

내 생각 내 기업에 대한 별도의 변수를 만드는 것이 었습니다.

이것이 가능합니까? 그렇다면 제대로하는 법.

[Semantical Error] line 0, col 61 near 'title_without_html': Error: Class SciForum\Version2Bundle\Entity\Paper has no field or association named title_without_html

답변

0

귀하의 코드 미스 $하고 있습니다 (Doctrine2 생성 된 것들과의 일관성을 위해)하지 낙타 표기법 방법을 피해야한다 : 사실, 나는 오류를 얻고있다.

또한 생성자에 의존하지 마십시오. Doctrine2는 데이터베이스에서 기존 데이터를 가져올 때 생성자를 호출하지 않습니다.

이 작동해야합니다

<?php 

class Toto { 

    public function getCleanTitle() 
    { 
     return strip_tags($this->getTitle()); 
    } 
} 

당신이 대신 당신이 다음 번 (많이 수완 호출에 대한 속성을 설정하지 않아도, 속성은 strip_tags의 결과를 캐시에 사용될 수).

+0

답장을 보내 주셔서 감사합니다. 내 데이터베이스를 쿼리하기 위해서는 QueryBuilder를 사용해야한다고 생각합니다. 그리고 나는이 문제에 직면 해있다. –

+0

나는이 질문에 대해 잘 이해하지 못했으며, 코드 예제는 올바른 길이 아니다. 당신이 필요로하는 것은 까다 롭습니다. MySQL에는 'strip_tags'가 없습니다. 필드의 단어로 검색을 수행해야하며, 느립니다. 내가 줄 수있는 최선의 조언은 실제로 테이블 위에 깨끗하고 박탈 된 제목이있는 실제 열을 추가하는 것입니다. 또는 슬러그 문자열이 있으면 검색하십시오. – Damien

+0

감사합니다. Damien, 그게 내가 생각한 것입니다. 아니면 cronjob으로 매일 업데이트되는 xml 파일을 생성하십시오. 따라서 데이터베이스에서 검색하는 대신 xml 파일에서 검색 할 수 있습니다. 나는 MySQL에 strip_tags가 없다는 것을 알고 있지만 Doctrine이 비슷한 비슷한 것을 제안했음을 알고 있습니다. 명백하게. –