[ZF] Query: foutafhandeling?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

.NET developer

Functie Als developer heb jij de keuze om aan te sluiten bij het team (13 developers) die op locatie projectmatig bij klanten werkt. Wanneer jij liever intern bij de werkgever werkt is er ook alle ruimte voor jou in het interne team (8 developers) van dit bedrijf. Je werkt samen aan verschillende projecten bij of voor de klant. Het project wordt aangeleverd door sales aan de project manager. Die maakt samen met de Resourcer een planning en op basis daarvan wordt uit het development team een “projectgroep” opgesteld. Hoeveel en welke projecten jij wilt oppakken gebeurt geheel in samenspraak met

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

Bekijk vacature »

Mendix Ontwikkelaar - Vernieuwen van het applicati

Bedrijfsomschrijving De ontwikkelingen in de transportsector gaan razendsnel. Bij ons kun je een belangrijke rol spelen in deze sector. We streven ernaar om onze klanten te ontzorgen op het gebied van continuïteit en veiligheid met innovatieve producten en diensten. We willen dat onze klanten de veiligste vervoerders van Europa worden. Ons team werkt hard om deze ambitieuze doelstellingen te bereiken en we bieden een motiverende werkomgeving aan. We zijn op zoek naar zelfstarters met een focus op resultaat en beslissingsbevoegdheid. Functieomschrijving Als Mendix ontwikkelaar bij deze organisatie heb je een gevarieerde baan. Het applicatielandschap wordt vernieuwd en de “schade en

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

Backend developer

Functie omschrijving Ben jij graag bezig met de back-end van applicaties? Zou je dit graag willen doen voor een kleine werkgever waar ook tijd is voor een drankje op zijn tijd? Je taken hierbij zullen bestaan uit: Gebruik maken van de volgende technieken: .NET (core), C#, SQL, XML, MVC, JSON, REST & SOAP API. Gebruik maken van de volgende tools: Visual Studio, GIT, Jira, Jenkins. Bovengenoemde technieken en tools ga je gebruiken om: Nieuwe functionaliteiten te ontwikkelen. Wijzigingsverzoeken van klanten uitvoeren. Verzorgen van koppelingen tussen data. Bedrijfsprofiel Jouw nieuwe werkgever bevindt zich in regio Raamdonksveer en bieden oplossingen op gebied

Bekijk vacature »

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

Bekijk vacature »
Jasper DS

Jasper DS

30/06/2012 16:07:21
Quote Anchor link
Op welke manier vangt zend een foute query op?

Nu krijg ik een lelijke error dat mijn foreach niet klopt maar ik denk dat het aan mijn query ligt!

Foutmelding:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: Invalid argument supplied for foreach() in C:\wamp\www\project1\application\views\scripts\report\index.phtml on line 4


Models/DbTabel/Client.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
class Application_Model_DbTable_Client extends Zend_Db_Table_Abstract
{

    protected $_name = 'navision_data';
}

?>
    


Models/Client.php
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
63
64
65
66
67
68
69
70
71
72
73
<?php

lass Application_Model_Company
{
    protected $_id;
    protected $_name;

    public function __construct(array $options = null)
    {

        if (is_array($options))
        {

            $this->setOptions($options);
        }
    }


    public function setOptions(array $options)
    {

        $methods = get_class_methods($this);
        foreach ($options as $key => $value)
        {

            $method = 'set' . ucfirst($key);

            if (in_array($method, $methods))
            {

                $this->$method($value);
            }
        }

        return $this;
    }


    // Deze functies kijken of de set / get bestaat en voeren hem eventueel uit
    public function __set($name, $value)
    {

        $method = 'set' . $name;
        if (('mapper' == $name) || !method_exists($this, $method))
        {

            throw new Exception('Invalid Company property: set' . $name);
        }

        $this->$method($value);
    }


    public function __get($name)
    {

        $method = 'get' . $name;
        if (('mapper' == $name) || !method_exists($this, $method)) {
            throw new Exception('Invalid Company property: get' . $name);
        }

        return $this->$method();
    }


    public function getId()
    {

        return $this->_id;
    }


    public function setId($id)
    {

        $this->_id = $id;
        return $this;
    }


    public function getName()
    {

        return $this->_name;
    }


    public function setName($name)
    {

        $this->_name = $name;
        return $this;
    }
}

?>


Models/ClientMapper.php
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
<?php

class Application_Model_ClientMapper
{
    protected $_dbTable;

    public function setDbTable($dbTable)
    {

        if (is_string($dbTable))
        {

            $dbTable = new $dbTable();
        }

        
        if (!$dbTable instanceof Zend_Db_Table_Abstract)
        {

            throw new Exception('CompanyMapper: Invalid table data gateway provided :' . $dbTable);
        }

        
        $this->_dbTable = $dbTable;
        return $this;
    }

        

    public function getDbTable()
    {

        if (null === $this->_dbTable)
        {

            $this->setDbTable('Application_Model_DbTable_Client');
        }

        return $this->_dbTable;
    }
    

    public function fetchAll()
    {

        $resultSet = $this->getDbTable()->fetchAll();
        $entries   = array();
        foreach ($resultSet as $row)
        {

            $entry = new Application_Model_Client();
            $entry->setId($row->nav_id)
                  ->
setName($row->klantnaam);
            $entries[] = $entry;
        }

        return $entries;
    }

}

?>


View:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<dl>
    <?php foreach ($this->clients as $entry): ?>
    <dt><?php echo $this->escape($entry->id) ?></dt>
    <dd><?php echo $this->escape($entry->name) ?></dd>
    <?php endforeach ?>
</dl>
Gewijzigd op 30/06/2012 16:08:24 door Jasper DS
 
PHP hulp

PHP hulp

26/11/2024 19:47:50
 
Wout van der Vegt

Wout van der Vegt

02/07/2012 10:58:50
Quote Anchor link
Foreach itereert over $this->clients. Maar $this->clients is blijkbaar leeg dus je zult dat moeten afvangen met een if(count($this->clients) > 0).

Dus de view zal zoiets als dit worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<dl>
<?php if(count($this->clients) > 0) { ?>
    <?php foreach ($this->clients as $entry): ?>
    <dt><?php echo $this->escape($entry->id) ?></dt>
    <dd><?php echo $this->escape($entry->name) ?></dd>
    <?php endforeach ?>
</dl>
<?php
} else {
   echo "Geen clients";
}

?>
 
Jasper DS

Jasper DS

02/07/2012 14:41:12
Quote Anchor link
En mag dat zo in de view staan of is het netter moest dit in de controller gefixt worden?
 
John Cena

John Cena

02/07/2012 14:43:18
Quote Anchor link
foreach gooi ik altijd in view.
 
Jasper DS

Jasper DS

02/07/2012 14:46:02
Quote Anchor link
Afhandeling ook zoals de count?
 
John Cena

John Cena

02/07/2012 14:49:39
Quote Anchor link
Doe ik wel, misschien dat Niels hier licht op kan schijnen :)
 
Jasper DS

Jasper DS

02/07/2012 14:53:49
Quote Anchor link
Oke, en stel nu ik wil een stukje laten zien als er op submit gedrukt is in mijn formulier dan krijg je in de controller zoiets:

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
<?php
if ($request->isPost())
        {


            if ($form->isValid($request->getPost()))
            {

                // we can do something!

                // show list of clients!

                $client = new Application_Model_ClientMapper();
        
                $this->view->clients = $client->fetchAll();
                    
            }

        }

?>


en in de view:

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
<?php echo $this->form->setAction($this->url()); ?>

<table>
    <tr>
        <td>klantID</td>
        <td>Klantnaam</td>
    </tr>    
    <?php foreach ($this->clients as $entry): ?>
    <tr>
           <td><?php echo $this->escape($entry->id) ?></td>
        <td><?php echo $this->escape($entry->name) ?></td>
    </tr>    
    <?php endforeach ?>
</table>


maar wat gebeurt er nu met $this->clients in de view als er nog niet gepost is? want dan bestaat deze natuurlijk nog niet!
 
John Cena

John Cena

02/07/2012 15:05:18
Quote Anchor link
Dan gebeurt er; niks :)
 
Jasper DS

Jasper DS

02/07/2012 15:18:30
Quote Anchor link
Jawel, hij geeft een error dat de foreach niet goed is doordat het er geen objecten zijn. Ik heb het zo opgelost:

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
<?php echo $this->form->setAction($this->url()); ?>

<?php if(count($this->clients) > 0): ?>
    
    <table>
        <tr>
            <td>klantID</td>
            <td>Klantnaam</td>
        </tr>
        
        <?php foreach ($this->clients as $entry): ?>
        <tr>
               <td><?php echo $this->escape($entry->id) ?></td>
            <td><?php echo $this->escape($entry->name) ?></td>
        </tr>    
        <?php endforeach ?>
        
    </table>

<?php endif; ?>
 
Wouter J

Wouter J

02/07/2012 15:22:46
Quote Anchor link
Die count mag je gewoon in je view hebben. In je view moet je geen logic plaatsen, dit is geen logic maar gewoon een check. Je kijkt of er items zijn, zijn die er niet dan moet je dat stukje niet tonen. Dat hoort gewoon in de view.
 
Jasper DS

Jasper DS

02/07/2012 15:24:10
Quote Anchor link
Bedankt wouter! Stel nu dat er een situatie is dat er indien er geen records zijn een andere view moet ingeladen worden dat hoort het wel in de controller of is er dan een fout in de logica?
 
Wouter J

Wouter J

02/07/2012 15:26:39
Quote Anchor link
Dat hoort dan wel in de controller. De controller beslist welke view ingeladen wordt. Als je bij 1 of meerdere resultaten view A wilt inladen en bij 0 resultaten view B dan regel je dat in de controller.
Wil je bij 1 of meer resultaten de resultaten tonen en anders niet en de rest van de view is gelijk dan hoort dat in de view thuis.

Wil je de 3 recentste resultaten tonen in de sidebar dan krijg je te maken met 2 views en 2 controllers die elk hun eigen view aanroepen, maar dat is hierbij niet van toepassing.
 

02/07/2012 16:25:35
Quote Anchor link
Waarom handel je niet in de model de count af?

zf heeft een simpele fiunctie count ingebouwd in Zend_Db
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$result
= $_table->fetchall();

if ($result->count() < 1) {
    return null;
}

return $result->toArray();
?>
 



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.