Próbuję dni, aby zrozumieć, w jaki sposób mogę przekonwertować zapytanie SQL do stylu konstruktora kwerend w laravel.Konwertuj zapytanie SQL do zapytania o styl konstruktora
Moje zapytanie SQL jest:
$tagid = Db::select("SELECT `id` FROM `wouter_blog_tags` WHERE `slug` = '".$this->param('slug')."'");
$blog = Db::select("SELECT *
FROM `wouter_blog_posts`
WHERE `published` IS NOT NULL
AND `published` = '1'
AND `published_at` IS NOT NULL
AND `published_at` < NOW()
AND (
SELECT count(*)
FROM `wouter_blog_tags`
INNER JOIN `wouter_blog_posts_tags` ON `wouter_blog_tags`.`id` = `wouter_blog_posts_tags`.`tags_id`
WHERE `wouter_blog_posts_tags`.`post_id` = `wouter_blog_posts`.`id`
AND `id`
IN (
'".$tagid[0]->id."'
)) >=1
ORDER BY `published_at` DESC
LIMIT 10
OFFSET 0");
Gdzie ja teraz skończyć przekonwertować do konstruktora zapytań jest:
$test = Db::table('wouter_blog_posts')
->where('published', '=', 1)
->where('published', '=', 'IS NOT NULL')
->where('published_at', '=', 'IS NOT NULL')
->where('published_at', '<', 'NOW()')
->select(Db::raw('count(*) wouter_blog_tags'))
->join('wouter_blog_posts_tags', function($join)
{
$join->on('wouter_blog_tags.id', '=', 'wouter_blog_posts_tags.tags_id')
->on('wouter_blog_posts_tags.post_id', '=', 'wouter_blog_posts.id')
->whereIn('id', $tagid[0]->id);
})
->get();
Czytałem, że nie można korzystać z którym w przyłączyć. Błąd teraz uzyskać:
Zaproszenie do metody nieokreślone Illuminate \ database \ Zapytanie \ JoinClause :: gdzie()
ja naprawdę nie wiem, jak mogę przekonwertować do SQL Query Builder. Mam nadzieję, że gdy zobaczę dobrze działającą konwersję mojego zapytania, mogę zrozumieć, jak muszę to zrobić następnym razem.
nie próbowałem tego, ale może używać '> whereRaw ([$ TagID [0] -> id]) '. Tylko upewnij się, że parametr wiązania na końcu jest tablicą.Jednak nie wiem, dlaczego używasz WHERE IN dla jednej wartości - '$ tagid [0] -> id'. Czy to zwraca tablicę lub coś takiego? Oto alternatywne rozwiązanie http://stackoverflow.com/questions/26913776/laravel-4-add-wherein-clause-to-a-join-condition –