ユーザーのすべてのプロファイルデータを取得しようとしています。また、ユーザーはバッジを与えることができるサーバー用にアップロードされた複数のファイルを持つことができます。テスト環境に2人のユーザーがおり、1人のユーザーに3つのファイルがあります。コントローラからJSONを返すと3つの結果が得られますが、1つのユーザーがすべてのデータを1つのオブジェクトに格納できるように、結合または結合したいと考えています。ここでLaravelの雄弁な質問にアイテムを集めるには?
JSONを使用すると、ジョン・ドウは、2つのファイルを持っていますが、一つだけ、ジョンが存在することになるので、私は1つのオブジェクトの下にあるすべてのファイルとファイルの種類を持っていると思います見ることができるように、私は現在、
[
{
"id":1,
"avatar":"john.jpg",
"role":2,
"first_name":"John",
"last_name":"Doe",
"user_name":"johndoe",
"account_status":2,
"one_child":"6",
"introduction":"test",
"file_type":1,
"file":"1498725633.docx",
"status":2,
"lat":59.44,
"lng":24.74,
"rating":"5",
"recommended":"1",
"rating_count":2,
"distance":0.29988841983648
},
{
"id":1,
"avatar":"john.jpg",
"role":2,
"first_name":"Joe",
"last_name":"Doe",
"user_name":"johndoe",
"account_status":2,
"one_child":"6",
"introduction":"test",
"file_type":4,
"file":"118771941-merged.mp4",
"status":1,
"lat":59.44,
"lng":24.74,
"rating":"5",
"recommended":"1",
"rating_count":2,
"distance":0.29988841983648
},
{
"id":4,
"avatar":"capture.JPG",
"role":2,
"first_name":"Jane",
"last_name":"Doe",
"user_name":"janedoe",
"account_status":2,
"one_child":"4",
"introduction":"Test",
"file_type":2,
"file":"1498732136.docx",
"status":1,
"lat":59.46,
"lng":24.83,
"rating":"3",
"recommended":"2",
"rating_count":2,
"distance":5.5651349391591
}
]
を返しますです1つのJaneオブジェクトはatmです。ここで
は、私は私の移行そうuser_id
参照users table
でid
で行われたすべての接続を持ってlaravel
select
`users`.`id` as `id`,
`users`.`avatar`,
`users`.`role`,
`users`.`first_name`,
`users`.`last_name`,
`users`.`user_name`,
`users`.`account_status`,
`user_wage_preferences`.`one_child`,
`user_introductions`.`introduction`,
`user_files`.`file_type`,
`user_files`.`file`,
`user_files`.`status` as `status`,
`user_contact_informations`.`lat`,
`user_contact_informations`.`lng`,
ROUND(AVG(user_reviews.rating)) AS rating,
SUM(user_reviews.recommended) as recommended,
COUNT(user_reviews.id) as rating_count,
`user_files`.`status`,
(
6371 * acos(cos(radians(59.4424504)) * cos(radians(lat)) * cos(radians(lng) - radians(24.7377842)) + sin(radians(59.4424504)) * sin(radians(lat)))
)
AS distance
from
`users`
inner join
`user_files`
on `users`.`id` = `user_files`.`user_id`
left join
`user_reviews`
on `users`.`id` = `user_reviews`.`nanny_id`
inner join
`user_introductions`
on `users`.`id` = `user_introductions`.`user_id`
inner join
`user_wage_preferences`
on `users`.`id` = `user_wage_preferences`.`user_id`
inner join
`user_contact_informations`
on `users`.`id` = `user_contact_informations`.`user_id`
where
`users`.`role` = ?
and `users`.`account_status` = ?
group by
`users`.`id`,
`users`.`avatar`,
`users`.`role`,
`users`.`first_name`,
`users`.`last_name`,
`users`.`user_name`,
`user_files`.`status`,
`users`.`id`,
`user_contact_informations`.`lat`,
`user_contact_informations`.`lng`,
`user_wage_preferences`.`one_child`,
`user_introductions`.`introduction`,
`user_files`.`file_type`,
`user_files`.`file`
having
`recommended` > ?
order by
`distance` asc jquery - 3.2.1.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search for 'length' in
select
`users`.`id` as `id`,
`users`.`avatar`,
`users`.`role`,
`users`.`first_name`,
`users`.`last_name`,
`users`.`user_name`,
`users`.`account_status`,
`user_wage_preferences`.`one_child`,
`user_introductions`.`introduction`,
`user_files`.`file_type`,
`user_files`.`file`,
`user_files`.`status` as `status`,
`user_contact_informations`.`lat`,
`user_contact_informations`.`lng`,
ROUND(AVG(user_reviews.rating)) AS rating,
SUM(user_reviews.recommended) as recommended,
COUNT(user_reviews.id) as rating_count,
`user_files`.`status`,
(
6371 * acos(cos(radians(59.4424504)) * cos(radians(lat)) * cos(radians(lng) - radians(24.7377842)) + sin(radians(59.4424504)) * sin(radians(lat)))
)
AS distance
from
`users`
inner join
`user_files`
on `users`.`id` = `user_files`.`user_id`
left join
`user_reviews`
on `users`.`id` = `user_reviews`.`nanny_id`
inner join
`user_introductions`
on `users`.`id` = `user_introductions`.`user_id`
inner join
`user_wage_preferences`
on `users`.`id` = `user_wage_preferences`.`user_id`
inner join
`user_contact_informations`
on `users`.`id` = `user_contact_informations`.`user_id`
where
`users`.`role` = ?
and `users`.`account_status` = ?
group by
`users`.`id`,
`users`.`avatar`,
`users`.`role`,
`users`.`first_name`,
`users`.`last_name`,
`users`.`user_name`,
`user_files`.`status`,
`users`.`id`,
`user_contact_informations`.`lat`,
`user_contact_informations`.`lng`,
`user_wage_preferences`.`one_child`,
`user_introductions`.`introduction`,
`user_files`.`file_type`,
`user_files`.`file`
having
`recommended` > ?
order by
`distance` asc
から抽出された私の生のSQLです。どのように私は1つのユーザーオブジェクトの下にすべてのファイルを取得できますか?
ユーザーを取得するために使用するlaravelコードを表示してください –