こんにちは、cakePHP 形式を使用して書きたい PostgreSQL クエリがあります。
SELECT
id,
title,
author,
postdate,
postcontent,
userID
FROM posts
WHERE
userID = 12
AND id IN (SELECT articleID FROM favourites WHERE articlesUserID = 12)
ORDER BY postdate DESC;
これは私のクエリが現在 CakePHP で持っているフォーマットです:
$favouritearticles = $this->Favourite->query('SELECT id, title, author, postdate, postdatecreation, posteditdate, postcontent, "userID" FROM posts WHERE "userID" = '.$userID.'AND id IN (SELECT lngblogarticleid FROM favourites WHERE lngloginuserid = '.$userID.') ORDER BY postdate DESC');
動作していますが、エコー json_encode の場合、次のような結果になります:
echo json_encode($favouritearticles);
次のような無効なjson形式を取得します:(JSONLintで確認)
[
[
{
"id": 2,
"title": "Prison Or Treatment For the Mentally ill ",
"author": "mike123",
"postdate": "March 12, 2013 at 6:46 pm",
"postdatecreation": "2013-03-12",
"posteditdate": null,
"postcontent": "<p><span>The public revulsion over repeated mass shootings has placed mental health in the spotlight. This is both good and bad.<\/span><\/p>",
"userID": 34
}
]
][
]
だから私はおそらく、「findメソッドを使用して」cakePHP形式を使用してクエリを書き直す必要があると思いました:
$favouritearticles = $this->Favourite->find('all',array('conditions'=>array(".........
ただし、クエリは非常に複雑で、その方法がわかりません。助けてくれてありがとう。