Jednoduchý e-shop Laravel 5.3 část 8 – detail objednávky v administraci
- Jednoduchý e-shop Laravel 5.3 část 1 – Instalace a databáze
- Jednoduchý e-shop Laravel 5.3 část 2 – databáze seeder a homepage
- Jednoduchý e-shop Laravel 5.3 část 3 – košík a přidání zboží do něj
- Jednoduchý e-shop Laravel 5.3 část 4 – dokončení objednávky
- Jednoduchý e-shop Laravel 5.3 část 5 – odeslání mailu pro objednávku
- Jednoduchý e-shop Laravel 5.3 část 6 – základ administrační části
- Jednoduchý e-shop Laravel 5.3 část 7 – přehled objednávak v administraci
- Jednoduchý e-shop Laravel 5.3 část 8 – detail objednávky v administraci
- Jednoduchý e-shop Laravel 5.3 část 9 – editace produktů v administraci
- Jednoduchý e-shop Laravel 5.3 část 10 – přidání zboží do košíku AJAXEM
- Jednoduchý e-shop Laravel 5.3 část 11 – malé vylepšení modal okno pro přidání do košíku
Nyní by bylo vhdoné, abychom si v administraci zobrazili podrobnosti ke každé objednávce. Šablona v administraci má u čísla objednávky odkaz na detail dané objednávky, takže nezbývá než to doprogramovat. V AdminControlleru si přidáme metodu
1 2 3 4 5 |
public function detail($id) { $order = Order::with('customer','items')->findOrFail($id); return view('admin.detail', ['order' => $order]); } |
a samozřejmě view admin/detail.blade.php
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 |
@extends('layouts.admin') @section('content') <div class="row"> <h2>Objednávka č. {{ $order->id }}</h2> <h3>Zákazník:</h3> {{ $order->customer->firstname }} {{ $order->customer->lastname }} <p>{{ $order->customer->email }}</p> {{ $order->customer->phone }} <h3>Adresa:</h3> <p>{{ $order->customer->street }}</p> <p>{{ $order->customer->city }}</p> <p>{{ $order->customer->psc }}</p> <h3>Položky:</h3> @if($order->status) <button class="btn-info btn">Vyřízena</button> @else <div class="pull-right"> <a href="{{ URL::to('/admin/status/'.$order->id) }}" class="btn-info btn">Vyřídit</a> </div> @endif <table class="table table-bordered table-striped"> <thead> <th>Název</th> <th>Počet</th> <th>Cena</th> </thead> <tbody> @foreach($order->items as $item) <tr> <th>{{ $item->name }}</th> <th>{{ $item->pivot->quantity }}</th> <th>{{ $item->pivot->price }}</th> </tr> @endforeach </tbody> </table> </div> @stop |
no a aby nám to fungovalo nesmíme zapomenout přidat routu v routes/web.php
1 2 3 4 |
Route::group(['prefix' => 'admin', 'middleware' => 'admin'],function () { Route::get('/', 'AdminController@index'); Route::get('detail/{id}', 'AdminController@detail'); }); |
Výborně nyní si již zobrazíme detail pro každou objednávku v administraci. Ještě by to chtělo změnu stavu objednávky po jejím vyřízení.
V AdminControlleru si přidáme
1 2 3 4 5 6 7 8 |
public function status($id) { $order = Order::findOrFail($id); $order->status = !($order->status); $order->save(); return view('admin.detail', ['order' => $order]); } |
a samozřejmě ještě požadavaná routa v routes/web.php
1 |
Route::get('status/{id}', 'AdminController@status'); |
No a administrace nám konečně plní nějakou funkci.