File: D:/HostingSpaces/SBogers10/honger.komma.pro/app/KommaApp/Cases/CaseController.php
<?php
/**
* Created by PhpStorm.
* User: mike
* Date: 18/05/17
* Time: 21:59
*/
namespace App\KommaApp\Cases;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\View;
use DaveJamesMiller\Breadcrumbs\Facade as Breadcrumbs;
class CaseController extends Controller
{
/**
* @var CaseService
*/
private $caseService;
/**
* CaseController constructor.
* @param CaseService $caseService
*/
public function __construct(CaseService $caseService)
{
$this->caseService = $caseService;
}
/**
* Show all cases
*/
public function index()
{
// Render breadcrumb if exists
if( ! $breadcrumb = Breadcrumbs::renderIfExists('cases'))
{
$breadcrumb = false;
}
$cases = $this->caseService->all();
return View::make('site.pages.cases',[
'namespace' => 'cases',
'cases' => $cases,
'breadcrumb' => $breadcrumb
]);
}
/**
* Show a case detail page
*
* @param $slug
*/
public function show($case)
{
if(!$case->active) \App::abort(404);
$case->load('translation', 'images');
// Render breadcrumb if exists
if( ! $breadcrumb = Breadcrumbs::renderIfExists('case.' . $case->translation->slug))
{
$breadcrumb = false;
}
// Define or overwrite code name
empty($case->code_name) ?
$codeName = camel_case($case->translation->slug) :
$codeName = $case->code_name;
// Newest cases
$otherCases = $this->caseService->other($case->id, 10);
// Array with keys of prev and next
$adjacentCases = $this->caseService->adjacentCases($case);
// Return view to the user
return View::make('site.cases.' . $codeName,[
'case' => $case,
'caseLangPath' => 'site/cases/' . $codeName,
'codeName' => $codeName,
'namespace' => 'case ' . $codeName,
'otherCases' => $otherCases,
'breadcrumb' => $breadcrumb,
'adjacentCases' => $adjacentCases
]);
}
}