[ZF] Query: foutafhandeling?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Scrum Master

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Scrum master op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je begeleidt twee teams binnen de afdeling Platform Services (PLS). Je helpt mee de devops manier van werken van de teams verder door te ontwikkelen. Je helpt de PO bij het managen van de product backlog; het voorbereiden 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 Front end developer React

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor op de

Bekijk vacature »

.NET developer

Functie Als senior .NET ontwikkelaar en aankomend lead developer ben jij in één van de drie development teams verantwoordelijk voor het volgende: • Jij hebt een oogpunt op modernisering en bent verantwoordelijk voor de technische staat en architectuur van de applicatie; • Jij bent verantwoordelijk voor het reviewen van de technische haalbaarheid van verschillende onderwerpen; • Jij bent verantwoordelijk voor een goede aansluiting binnen het multidisciplinaire team en de bijbehorende taken; • Jij bent verantwoordelijk voor het aandragen van verbetervoorstellen en ontwikkelstandaarden in zowel de techniek als architectuur; • Jij bent meewerkend voorman en ondersteunt en coacht jouw team op

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

.NET Developer C#

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 Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er

Bekijk vacature »

Software Developer

Functie omschrijving Veel begeleiding en de kans om je verder te ontwikkelen als software developer. Dat kunnen wij jou bieden bij deelname aan deze leuke traineeship. Je krijgt een mentor toegewezen die jou alle kneepjes van het vak leert. Heb jij al wat ervaring als software developer? Daar worden wij heel blij van! Lees snel verder! Bedrijfsprofiel Als software developer neem je deel aan een trainings programma in de omgeving van Haarlem waar je persoonlijk wordt begeleidt, zodat je alle kneepjes van het vak leert. Aan de hand van jouw kennis en ervaring krijg je een persoonlijk opleidingstraject. Je gaat

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 »

Medior Java developer

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 »

C# .NET Developer

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Bennekom gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Front end developer

Functie Jij als front end developer gaat werken binnen de teams van onze klant, uiteraard met alle moderne technieken. Opdrachten worden echt gericht op jouw leerdoelen en jouw behoeftes. Wij hebben een omgeving gecreëerd waarin je echt jezelf kan zijn en waar echt gekeken wordt naar jouw voorkeuren. Maak je een fout? Geen probleem, leer ervan en dan ga weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en dus jezelf snel ontwikkelen. Eisen Je bent communicatief vaardig en houdt van een dynamische omgeving Je hebt HBO werk- en denkniveau Je hebt gedegen kennis

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Senior pega developer

You work on software that makes colleagues and customers happy! Thanks to your IT skills, De Mandemakers Groep really makes a difference for its customers. Do coding, testing and deployments make your heart beat faster? Then apply today as Senior Pega Developer at De Mandemakers Groep! Wat ga je doen? The job title gives it away: You will be developing Pega software. This ranges from technical design, coding and testing to test automation, deployments and bug fixing. Your goal is to continuously improve our systems so that colleagues can work efficiently and customers receive optimal service. You don't have to

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

10/01/2025 22:00:26
 
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.