MVC voor Laravel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans Jonker

Hans Jonker

08/11/2013 15:22:47
Quote Anchor link
Beste mensen,

hoe kan ik onderstaande code in laravel gebruiken?

Ik bedoel dan wat moet er in de controler, en wat in de view en wat in de model.

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
<?php
$objReader
= PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load("test.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();

echo '<table>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
  echo '<tr>' . "\n";

  $cellIterator = $row->getCellIterator();
  $cellIterator->setIterateOnlyExistingCells(false);

  foreach ($cellIterator as $cell) {
    echo '<td>' . $cell->getValue() . '</td>' . "\n";
  }


  echo '</tr>' . "\n";
}

echo '</table>' . "\n";
?>
 
PHP hulp

PHP hulp

23/11/2024 04:20:22
 
Wouter J

Wouter J

08/11/2013 15:40:22
Quote Anchor link
Oke, laten we het omdraaien. Vertel ons eens wat volgens jou de controller, model en view zijn.
 
Hans Jonker

Hans Jonker

08/11/2013 19:46:31
Quote Anchor link
Ok, ik heb mijn best gedaan maar kom er niet helemaal uit.

Ik heb het volgende gedaan:

In de HomeController.php die ik gebruik voor de pagina heb ik het volgende gezet;

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
<?php
class HomeController extends BaseController {

    public function showWelcome()
    {


        $objReader = PHPExcel_IOFactory::createReader('Excel2007');
        $objReader->setReadDataOnly(true);

        $objPHPExcel = $objReader->load("/Users/hansjonker/Desktop/l4/public/data/sample.xlsx");
        $objWorksheetLa = $objPHPExcel->getActiveSheet();
        $rows = $objWorksheetLa->getRowIterator();
        foreach ($rows as $row) {
            $cells = $row->getCellIterator();
            $cells->setIterateOnlyExistingCells(false);
            foreach ($cells as $cell) {
                $cell->getValue();
            }
        }

        $data = array(
            'objWorksheet' => $objWorksheetLa,
            'rows' => $rows,
            'cells' => $cells,
            'value' => $cell
        );
        
        return View::make('hello', $data);
    }
}

?>


en mijn view hello.blade.php ziet er als volgt uit:

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
<!doctype html>
<
html lang="en">
    <
head>
        <
meta charset="UTF-8">
        <
title>Document</title>
    <
/head>
    <
body>
        <
table>
            @
foreach ($rows as $row)
            <
tr>
                @
foreach ($cells as $cell)
                    <
td>{{ $value }}</td>
                @
endforeach
            </tr>
            @
endforeach
        </table>
    <
/body>
<
/html>
?>


maar dit geeft wel een tabel maar dan met de waarde van het eerste veld in elke cel.
Het aantal column kopt en ook het aantal rijen, alleen de inhoud klopt niet er staat overal het zelfde.

En ik weet ook niet of dit voldoet aan de regels.
Gewijzigd op 08/11/2013 19:50:23 door Hans Jonker
 
- Raoul -

- Raoul -

08/11/2013 21:49:10
Quote Anchor link
Inladen en gegevens ophalen van je excel sheet kan in een andere class. Zie het repository pattern, dit gaat dan in je models.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

09/11/2013 08:14:13
Quote Anchor link
In principe hoort dit in een model thuis, maar dan moet je een model wel beschouwen als een pure gegevens lezer/schrijver, en ik denk dat een model in Laravel enkel gericht is op uitlezen van databases.
 
Bart V B

Bart V B

09/11/2013 08:36:04
Quote Anchor link
Misschien is het handiger om het wiel niet opnieuw uit te vinden?

https://github.com/guiguidoc/laravel-phpexcel/blob/master/README.md

Volgens mij kan met een model net zoveel als met een ander mvc model.
Laravel legt het vaak uit met database interactie, maar je kan daar gewoon gebruik van maken zonder database.
 
Hans Jonker

Hans Jonker

09/11/2013 13:51:54
Quote Anchor link
Bart V B op 09/11/2013 08:36:04:
Misschien is het handiger om het wiel niet opnieuw uit te vinden?

https://github.com/guiguidoc/laravel-phpexcel/blob/master/README.md

Volgens mij kan met een model net zoveel als met een ander mvc model.
Laravel legt het vaak uit met database interactie, maar je kan daar gewoon gebruik van maken zonder database.


Volgens mij is dit niet geschikt voor Laravel 4, of heb ik het mis?
 
- Raoul -

- Raoul -

09/11/2013 14:15:26
Quote Anchor link
Ger van Steenderen op 09/11/2013 08:14:13:
In principe hoort dit in een model thuis, maar dan moet je een model wel beschouwen als een pure gegevens lezer/schrijver, en ik denk dat een model in Laravel enkel gericht is op uitlezen van databases.


Het kan laravel geen reet schelen wat je model precies doet. Zolang je model de baseclasse "Eloquent" (Eloquent is de db-modelclass) niet gebruikt.
 



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.