TYPO3 CMS 8.7.8 용 확장 프로그램을 개발 중입니다. query->statement()
을 사용하여 단일 테이블의 모든 필드와 다른 테이블의 1 개의 필드를 선택했습니다. 나는 적당한 모델을 가지고 QueryResult
을 얻었고 나는 그 1 여분의 필드를 그들에게 더하고 싶습니다. 그게 가능하니?원시 SQL을 사용하여 모델에 단일 필드 추가
1
A
답변
2
당신은 정상 JOIN
명령 그래서 당신이 할 수있는가에서 (또한 코드에 당신이 원하는 테이블에 조인 documentation
$result = $query->statement('SELECT * FROM tx_sjroffers_domain_model_offer
WHERE title LIKE ? AND organization IN ?', array('%climbing%', array(33,47)));
에서
를 사용 ->statement(...)
방법 및 그에서 SQL 쿼리를 수행 할 수 있습니다 문서)
LEFT JOIN tx_blogexample_person
ON tx_blogexample_post.author = tx_blogexample_person.uid
하지만 mysql 쿼리의 원시 데이터로 끝날 것입니다. 객체로 변환하려면 Property Mapper
0
JOIN
을 statments
과 같이 사용하십시오.
$query = $this->createQuery();
$sql = 'SELECT single.*,another.field_anme AS fields_name
FROM
tx_single_table_name single
JOIN
tx_another_table_name another
ON
single.fields = another.uid
WHERE
O.deleted = 0
AND O.hidden=0
AND O.uid=' . $orderId;
return $query->statement($sql)->execute();
제 질문은 모델에 여분의 필드를 가져 오는 방법입니다. 필자는 모델을 변경하여 추가 필드를 수용하고 필드에 대한 TCA 구성을 추가했습니다. 이제 모든 것이 잘됩니다. –
@StephanRodemeier 그런 다음 자신 만의 TypeConverter를 만들고 추가 된 필드를 반환 된 모델에 추가 할 수 있습니다. PersistentObjectConverter와 그 유사점을 살펴보십시오. –