Skip to main content

Refacturing

Inleiding

We hebben een hele eenvoudige Read gemaakt van de producten.

We gaan nu een nette output maken, maar voordat we dat gaan doen gaan we eerst onze code netjes opdelen in controller en view. Nu hebben we (om te testen) even een hele eenvoudige output in de routing file gezet. Leuk om te testen, maar als we alle code zo zouden maken dan krijgen we een hele grote overzichtelijke web.php

We gaan dus eerst de code die we nu hebben op de juiste plaats zetten. Daarna gaan we onze output fraaien maken.

Controller

We maken eerst een controller aan voor product.

php artisan make:controller ProductController    

In de controller zetten we de volgende functie.

public function read() {
    $products = \App\Models\Product::all();
    return view('product-read', ['products' => $products]);
}

De functie verwijst naar de product-view en geeft de variabele $products mee.

View

We maken in de views folder een nieuw bestand product-read.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MaxWare</title>
    <h1>De snelle software ontwikkeling</h1>
</head>
<body>
    <?php dd($products); ?>
</body>
</html>

Met de dd() functie zien we de inhoud van $products.

Illuminate\Database\Eloquent\Collection {#303 ▼ // resources\views/product-read.blade.php
  #items: array:10 [▼
    0 => App\Models\Product {#305 ▼
      #connection: "mysql"
      #table: "product"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      +preventsLazyLoading: false
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #escapeWhenCastingToString: false
      #attributes: array:6 [▼
        "id" => 1
        "name" => "Logitech M90 muis met kabel"
        "description" => "De Logitech M90 is een bekabelde, optische muis met een goede reactiesnelheid (1000 dpi). Door de gebruiksvriendelijke, symmetrische vorm van de muis bedient u  ▶"
        "amount" => "7.50"
        "created_at" => null
        "updated_at" => null
      ]
      #original: array:6 [▼
        "id" => 1
        "name" => "Logitech M90 muis met kabel"
        "description" => "De Logitech M90 is een bekabelde, optische muis met een goede reactiesnelheid (1000 dpi). Door de gebruiksvriendelijke, symmetrische vorm van de muis bedient u  ▶"
        "amount" => "7.50"
        "created_at" => null
        "updated_at" => null
      ]
      #changes: []
      #casts: []
      #classCastCache: []
      #attributeCastCache: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #fillable: []
      #guarded: array:1 [▶]

 

Route