[laravel] Query Builder get method werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Front-end Developer

Gezellige team, passie en een groene toekomst! Lees hier de vacature van Front-end Developer bij All in Power! All in power heeft zich tot doel gesteld écht bij te dragen aan de energietransitie. Dit doen wij door de markt voor energie volledig op zijn kop te zetten. Producenten van schone (wind- of zonne-)energie verkopen via ons platform hun energie rechtstreeks aan gebruikers. Of dit nu huishoudens, bedrijven of bijvoorbeeld laadpalen zijn ons platform maakt het uitwisselen van energie mogelijk. Zo maken we de business case van onze klanten veel sterker en loont het om (meer) te investeren in vergroening voor

Bekijk vacature »

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

Bekijk vacature »

Senior .NET developer

Functie As a Senior .NET developer you will work in our Research & development team. Our team consists of 17 colleagues! We are currently busy setting up a completely new architecture for a new product. We use VS2022 and .NET 6.0 for our new product. Your function is therefore mainly backend oriented. Since we develop measuring equipment for the chemical industry, it is also very important to develop high-quality software for its control. You are also responsible for designing, implementing and testing new features. For this position its also very important to ensure future-proof and sustainable architecture. Eisen - A

Bekijk vacature »

Front-end (Angular) developer

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een Front-end (Angular) developer. Het it-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn dus op zoek naar professionals die autonoom en gedisciplineerd aan de slag gaan, en bij aanvang als enige developer met hun Front-end applicaties aan de slag gaat. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI

Bekijk vacature »

Front-end PHP Developer

Dit ga je doen Bouwen van de frontend van een nieuwe applicaties; Verbeteren van de user experience; Opstellen van een style guide; Schakelen met collega developers over de te bouwen oplossing; Je speelt een belangrijke rol in het neerzetten van het nieuwe systeem; Werken met o.a. Symfony 6, API Platform, Twig, Javascript, Redis Automatiseren van processen; Koppelen van verschillende functionaliteiten; Unit tests, integration tests, end-to-end tests; In de toekomst ga je nog werken aan andere projecten. Hier ga je werken Voor onze vaste opdrachtgever in de regio Breda zijn wij op zoek naar een Frontend Developer. Het betreft een organisatie

Bekijk vacature »

Robot Programmeur

Een verantwoordelijke baan met leuke uitdagingen. Heb jij ervaring met het programmeren van robots? Kan jij goed samenwerken met collega's die verschillende specialisaties hebben? Ben je oplossingsgericht, analytisch en flexibel? Ga dan aan de slag als Robot Programmeur bij Gibas in Nijkerk! Als Robot Programmeur kom je te werken bij Gibas. Dat betekent dat je gegarandeerd meewerkt aan unieke oplossingen in productieprocessen. Bij elk project moet er opnieuw geëngineerd en geprogrammeerd worden. Dat maakt jouw werk uitdagend! Voordat je robots gaat programmeren komt er het volgende bij kijken: De opdracht gaat van de afdeling Sales naar de afdeling Operations door

Bekijk vacature »

Back End Developer

As a Back End developer at KUBUS you will be developing the (web) application and services of BIMcollab. You have a focus on the back end of our software, for which we mainly work with C# and .NET. We use a full-stack approach, which means that in addition to the back-end, you will also help with other parts of the code. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact

Bekijk vacature »

Software ontwikkelaar ASP .Net / C#

Functie omschrijving Gezocht! Software ontwikkelaar. Ben jij bekend met termen als ASP .Net, C# en SQL? Ben jij op zoek naar een afwisselende en uitdagende IT-functie binnen de agrarische sector? En omschrijf jij jezelf als zelfstandig, enthousiast en proactief? Dan hebben wij de perfecte functie voor jou! Als Software ontwikkelaar binnen deze organisatie ben je samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Je gaat hierbij bijdragen aan de vertaling van klantwensen naar effectieve softwareoplossingen. Verder bestaan je werkzaamheden uit: Technische uitwerking van de business

Bekijk vacature »

Back-end Developer (Permanent position with the em

Bedrijfsomschrijving Dutch specialist in technical installation materials. Functieomschrijving Purpose of the position: Our client is looking for a Back-end Developer who, together with the rest of the energetic and dynamic team, is responsible for the development and management of the website. This not only concerns the development and management of the current website, but also the development of a new Headless Commerce Platform to keep the customer's website Future proof. Within the IT department, there is a real DevOps culture and the commerce team is at the forefront and tries to implement continuous improvements. Most important tasks: ï‚· Designing and

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van IT Operations Manager! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van

Bekijk vacature »

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

C# ontwikkelaar

Functie omschrijving Werk jij graag met C# en het .NET framework in een leuk familiebedrijf? Lees dan snel verder! Jouw takenpakket hierbij is: Je gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Je gaat werken in een Microsoft omgeving (ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Daarnaast optimaliseer je de bestaande software. Bedrijfsprofiel Deze organisatie is gevestigd in de omgeving van Best en is een echt familiebedrijf. Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met

Bekijk vacature »
Victor G

Victor G

31/07/2014 12:13:12
Quote Anchor link
Hallo mensen,

Ik ben een vrij grote query aan het maken met de query builder van laravel. Maar ik krijg helaas niks terug van de query, terwijl als ik deze in phpmyadmin uitvoer krijg ik wel waardes terug. Ik ben vast heel dom bezig, maar ik ben er nu al een tijdje mee aan het prutsen en ik hoopte dat iemand het hier ziet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php

    /*
    |--------------------------------------------------------------------------
    | fetch {objsoorten, state}
    | @return objecten
    |--------------------------------------------------------------------------
    */

    public static function fetch($objsoorten, $state = 'active') {
        $query = DB::table('objecten')
                    ->
select('objecten.obj_idx', 'objectsoorten.objsoort_id', 'objectsoorten.objsoort_naam', 'objectspecificaties.objspec_waarde', 'objecten.obj_actief', 'attributen.attr_naam', 'attributen.attr_regex')
                    ->
join('objectsoorten', 'objectsoorten.objsoort_id', '=', 'objecten.objsoort_id')
                    ->
join('objectsoort_attributen', 'objectsoort_attributen.objsoort_id', '=', 'objectsoorten.objsoort_id')
                    ->
join('attributen', 'attributen.attr_id', '=', 'objectsoort_attributen.attr_id')
                    ->
join('objectspecificaties', function($join) {
                        $join->on('objectspecificaties.attr_id', '=', 'attributen.attr_id')
                             ->
on('objectspecificaties.obj_id', '=', 'objecten.obj_id');
                    })
                    ->
whereIn('objecten.obj_id', function($query) use ($objsoorten, $state) {
                        $query->select('objecten.obj_id')
                              ->
from('objecten')
                              ->
join('objectsoorten', 'objectsoorten.objsoort_id', '=', 'objecten.objsoort_id')
                              ->
join('objectspecificaties', 'objectspecificaties.obj_id', '=', 'objecten.obj_id')
                              ->
where('objectspecificaties.objspec_waarde', 'LIKE', '\'%%\'');
                        
                        if(is_array($objsoorten)) {
                            foreach($objsoorten as $key => $id) {
                                if($key == 0) {
                                    $query->where('objecten.objsoort_id', '=', intval($id));
                                }
else {
                                    $query->orWhere('objecten.objsoort_id', '=', intval($id));
                                }
                            }
                        }
else {
                            $query->where('objecten.objsoort_id', '=', $objsoorten);
                        }


                        if($state == 'all') {
                            $query->where('objecten.obj_actief', '=', 0);
                            $query->orWhere('objecten.obj_actief', '=', 1);
                        }
elseif($state == 'active') {
                            $query->where('objecten.obj_actief', '=', 1);
                        }
elseif($state == 'inactive') {
                            $query->where('objecten.obj_actief', '=', 0);
                        }


                        $query->groupBy('objecten.obj_id');
                    })
                    ->
groupBy('objectsoort_attributen.attr_id')
                    ->
groupBy('objecten.obj_id')
                    ->
orderBy('objectsoort_attributen.objsoort_id')
                    ->
orderBy('objecten.obj_id')
                    ->
orderBy('attributen.attr_id')
                    ->
get();

        var_dump($query);        

        return ($query) ? $query : false;
    }



?>


De var dump:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
array(0) { }


De resultset van phpmyadmin:

Afbeelding

Alvast bedankt voor de gene die me kan helpen.
 
PHP hulp

PHP hulp

25/04/2024 19:14:06
 
Erwin H

Erwin H

31/07/2014 12:18:53
Quote Anchor link
Ik ken de quiry builder van Laraval niet, maar het lijkt me (...) dat er wel een manier moet zijn om de query te printen voor je hem uitvoert. Alleen dan kan je controleren wat er fout gaat.
Gewijzigd op 31/07/2014 12:19:11 door Erwin H
 
Victor G

Victor G

31/07/2014 12:21:56
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
select `objecten`.`obj_id`, `objectsoorten`.`objsoort_id`, `objectsoorten`.`objsoort_naam`, `objectspecificaties`.`objspec_waarde`, `objecten`.`obj_actief`, `attributen`.`attr_naam`, `attributen`.`attr_regex`
from `objecten`
inner join `objectsoorten` on `objectsoorten`.`objsoort_id` = `objecten`.`objsoort_id`
inner join `objectsoort_attributen` on `objectsoort_attributen`.`objsoort_id` = `objectsoorten`.`objsoort_id`
inner join `attributen` on `attributen`.`attr_id` = `objectsoort_attributen`.`attr_id`
inner join `objectspecificaties` on `objectspecificaties`.`attr_id` = `attributen`.`attr_id`
and `objectspecificaties`.`obj_id` = `objecten`.`obj_id`
where `objecten`.`obj_id` in (select `objecten`.`obj_id`
                              from `objecten`
                              inner join `objectsoorten` on `objectsoorten`.`objsoort_id` = `objecten`.`objsoort_id`
                              inner join `objectspecificaties` on `objectspecificaties`.`obj_id` = `objecten`.`obj_id`
                              where `objectspecificaties`.`objspec_waarde` LIKE '%%'
                              and `objecten`.`objsoort_id` = 2
                              and `objecten`.`obj_actief` = 1
                              group by `objecten`.`obj_id`)
group by `objectsoort_attributen`.`attr_id`, `objecten`.`obj_id`
order by `objectsoort_attributen`.`objsoort_id` asc,
`objecten`.`obj_id` asc,
`attributen`.`attr_id` asc


Dit is dus het probleem, er gaat niks fout. De query zoals hij hem output is prima. Alleen ik krijg geen resultset terug van de query builder.
 
Erwin H

Erwin H

31/07/2014 12:26:20
Quote Anchor link
Offtopic:
dus je hebt nu 44 regels code om een query van 19 regels te produceren. Ik begrijp die query builders niet....


Heb je deze query precies zo uitgevoerd in phpmyadmin?
Wat doet de foutafhandeling in php/laraval? Krijg je op de een of andere manier ergens meldingen?

Waarom heb je dit erin staan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
where `objectspecificaties`.`objspec_waarde` LIKE '%%'

Deze voorwaarde kan je weglaten, aangezien het geen enkele restrictie oplevert.
 
Victor G

Victor G

31/07/2014 12:30:40
Quote Anchor link
1) Ja zo heb ik hem uitgevoerd.
2) Op dit moment is het alleen of er wat in staat ja/nee ivm met testen
3) Snap ik, dat is wederom voor het testen. Daar komt later een waarde in te staan waar op gezocht kan worden, heb ik er extra uitgelaten.
 
Erwin H

Erwin H

31/07/2014 12:35:23
Quote Anchor link
Weet je zeker dat je een db connectie hebt en dat je de juiste database hebt geselecteerd?
 
Victor G

Victor G

31/07/2014 13:08:13
Quote Anchor link
Alles werkt, alleen die query niet. Dit is niet de eerste query die ik uitvoer hoor
 
Erwin H

Erwin H

31/07/2014 13:10:31
Quote Anchor link
Dan wordt het stap voor stap die query opbouwen en elke keer testen of de resultaten nog komen.
 
Victor G

Victor G

31/07/2014 13:16:48
Quote Anchor link
Maar ik zeg net dat er met de query niks mis is, alleen ik krijg geen resultset van de query builder. De query zelf en het result ervan is goed als ik de query in sql invoer.
 
 - Diov  -

- Diov -

31/07/2014 13:28:10
Quote Anchor link
Probeer is bij "Order By", erbij te schrijven of het gaat om ASC of DESC?
 
- SanThe -

- SanThe -

31/07/2014 13:36:45
Quote Anchor link
Voer je de query wel uit?
 
Wouter J

Wouter J

31/07/2014 13:41:03
Quote Anchor link
Error reporting aangezet? Alsnog de query minimaliseren in PHP, misschien doet de query builder wel iets fout.
 
Victor G

Victor G

31/07/2014 14:07:36
Quote Anchor link
@SanThe: Jep, de ->get() methode op het laatste doet dat.

@Wouter: Ja de query builder deed idd wat fout, ik ben er eindelijk achter:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ->where('objectspecificaties.objspec_waarde', 'LIKE', '\'%%\''); ?>


Deze regel was de boosdoener, dit omdat de query builder er geen value in zag maakte hij er automatisch een ? van, en aangezien er geen ? voorkomt in een van deze rows kreeg ik dus een lege resultset terug. Ik heb deze er dus even uit gehaald. Had ik ook wel kunnen nagaan achteraf, in ieder geval bedankt voor de moeite iedereen!
 
Erwin H

Erwin H

31/07/2014 14:17:47
Quote Anchor link
Met andere woorden, de query die je poste was dus NIET de query die door de query builder werd opgebouwd, anders had je daar de fout al kunnen vinden. Handig, om niet te posten waar naar gevraagd wordt.....
 
Victor G

Victor G

31/07/2014 14:26:39
Quote Anchor link
Erwin H op 31/07/2014 14:17:47:
Met andere woorden, de query die je poste was dus NIET de query die door de query builder werd opgebouwd, anders had je daar de fout al kunnen vinden. Handig, om niet te posten waar naar gevraagd wordt.....


.. Ik kon niet zo snel vinden hoe je het omzette naar SQL. Ik werk ook niet vaak met zulke grote queries, dus heb hier ook geen reden toe gehad.
 
Wouter J

Wouter J

31/07/2014 14:59:42
Quote Anchor link
Quote:
Ik werk ook niet vaak met zulke grote queries, dus heb hier ook geen reden toe gehad.

Om een query te kunnen debuggen moet je altijd weten welke query er uitgevoerd wordt. Je had in dit geval dus wel een rede om deze query te weten.

En trouwens, het lijkt me sterk dat je er uberhaubt moeite voor hebt gedaan om te vinden hoe je het omzet tot SQL. Een simpele google zoektocht naar "laravel query builder dump query" gaf me als eerste resultaat: http://stackoverflow.com/a/18236656/1149495 Daar staat toch heel duidelijk het antwoord...
 
Erwin H

Erwin H

31/07/2014 15:02:33
Quote Anchor link
Daar zit dus het probleem. 99 van de 100 gevallen bij dit soort vragen, komt het omdat men ofwel instellingen niet goed heeft, of omdat de query die men denkt uit te voeren niet helemaal de query is die daadwerkelijk wordt uitgevoerd. Dat laatste is alleen te controleren door de exacte query te zien die wordt uitgevoerd. Vandaar ook de specifieke vraag, die stel ik natuurlijk niet zomaar.

Afijn, je hebt denk ik nu wel door dat je jezelf alleen maar in de voet schiet als je de bocht afsnijdt.
 
Victor G

Victor G

31/07/2014 15:55:24
Quote Anchor link
Ik snap je Erwin, ik ging er gewoon dom vanuit en dat is fout, maar goed. Het is opgelost, dank jullie.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/07/2014 19:33:41
Quote Anchor link
Wat ik me afvraag is of je het juiste resultaat krijgt, want je gebruikt group by zonder enige aggegrate functies.

Ook heb je een where in subquery waarin tabellen in de from clause staan die ook al in de from clause van hoofdquery staan.
Die subquery kan je dus gewoon weglaten, en de where clause van de subquery in de hoofdquery zetten, geeft hetzelfde resultaat maar is veel efficiënter.
 
Victor G

Victor G

31/07/2014 20:45:21
Quote Anchor link
Nee dat helaas niet, een object heeft meerdere attributen. Met de subquery bekijk ik welke object ids ik moet ophalen, en met de hoofd query haal ik deze allemaal op (met dus alle attributen per object id).

Of ik bekijk het verkeerd, dat kan natuurlijk ook.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/07/2014 22:16:44
Quote Anchor link
Bekijk deze query eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT
    id
FROM
    users
WHERE
    id IN (SELECT id FROM users WHERE id = 2)

Dit is namelijk wat jij doet in jouw query.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.