Я хочу, чтобы преобразовать этот запрос красноречив:Laravel 4: Сырое Запрос на красноречивые
SELECT *
FROM news
WHERE who_see='6'
OR (news.id_user IN
(SELECT id_user
FROM koneksi_user
WHERE to_id_user='$user->id_user'
AND confirmed='0')
OR news.id_user IN
(SELECT to_id_user
FROM koneksi_user
WHERE id_user='$user->id_user'
AND confirmed='0')))
ORDER BY created_at DESC
До сих пор я пытался это:
$user = \Auth::user();
return \DB::table('news')
->where('who_see','6')
->orWhereIn('news.id_user', function($query)
{
$query->select('id_user')
->from('koneksi_user')
->whereRaw('to_id_user = $user->id_user');
})
->orWhereIn('news.id_user', function($query2)
{
$query2->select('id_user')
->from('koneksi_user')
->whereRaw('id_user = $user->id_user');
})
->get();
Но я получаю эту ошибку:
SQLSTATE[42601]: Syntax error: 7 ERROR: 'sintaks error' pada atau didekat « $ » LINE 1: ... "id_user" from "koneksi_user" where to_id_user = $user->id_...^(SQL: select * from "news" where "who_see" = 6 or "news"."id_user" in (select "id_user" from "koneksi_user" where to_id_user = $user->id_user) or "news"."id_user" in (select "id_user" from "koneksi_user" where id_user = $user->id_user))
Как это исправить?
Итак, вы просто хотите получить решение? Покажите нам, что вы пробовали до сих пор. – Bogdan
возврата \ Статус :: с ('любит') \t \t \t -> с ('') user.profil.foto \t \t \t -> с ('Фото') \t \t \t -> с ('комментарии .owner.profil.фото ') \t \t \t -> с (' ') comments.like \t \t \t // -> где (' who_see '[6, $ user-> id_user_group]) \t \t \t -> orWhereIn (' who_see ', [6, $ user-> id_user_group]) \t \t \t -> orWhereIn (' news.id_user ', "array ([select id_user from koneksi_user, где to_id_user = $ user-> id_user и подтверждено =' 0 ']) ") \t \t \t -> OrderBy ('created_at', 'по убыванию') \t \t \t -> постраничной (20); –
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что этот вопрос относится к разнообразию «gimme hte codez». –