ErrorException (E_ERROR)
Trying to get property 'slug' of non-object (View: /home/sangwinco/nova/app/Modules/CaseStudies/Views/CaseStudy/Index.tpl) ErrorException thrown with message "Trying to get property 'slug' of non-object (View: /home/sangwinco/nova/app/Modules/CaseStudies/Views/CaseStudy/Index.tpl)" Stacktrace: #28 ErrorException in /home/sangwinco/nova/storage/views/7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php:1 #27 ErrorException in /home/sangwinco/nova/storage/views/7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php:1 #26 Nova\Exception\Handler:handleError in /home/sangwinco/nova/storage/views/7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php:1 #25 include in /home/sangwinco/nova/vendor/nova-framework/system/src/View/Engines/PhpEngine.php:51 #24 Nova\View\Engines\PhpEngine:evaluatePath in /home/sangwinco/nova/vendor/nova-framework/system/src/View/Engines/CompilerEngine.php:62 #23 Nova\View\Engines\CompilerEngine:get in /home/sangwinco/nova/vendor/nova-framework/system/src/View/View.php:145 #22 Nova\View\View:getContents in /home/sangwinco/nova/vendor/nova-framework/system/src/View/View.php:114 #21 Nova\View\View:renderContents in /home/sangwinco/nova/vendor/nova-framework/system/src/View/View.php:83 #20 Nova\View\View:render in /home/sangwinco/nova/vendor/nova-framework/system/src/View/View.php:160 #19 Nova\View\View:gatherData in /home/sangwinco/nova/vendor/nova-framework/system/src/View/View.php:145 #18 Nova\View\View:getContents in /home/sangwinco/nova/vendor/nova-framework/system/src/View/View.php:114 #17 Nova\View\View:renderContents in /home/sangwinco/nova/vendor/nova-framework/system/src/View/View.php:83 #16 Nova\View\View:render in /home/sangwinco/nova/app/Core/Controller.php:73 #15 App\Core\Controller:after in /home/sangwinco/nova/vendor/nova-framework/system/src/Routing/Controller.php:288 #14 Nova\Routing\Controller:callAction in /home/sangwinco/nova/vendor/nova-framework/system/src/Routing/ControllerDispatcher.php:91 #13 Nova\Routing\ControllerDispatcher:call in /home/sangwinco/nova/vendor/nova-framework/system/src/Routing/ControllerDispatcher.php:60 #12 Nova\Routing\ControllerDispatcher:dispatch in /home/sangwinco/nova/vendor/nova-framework/system/src/Routing/Route.php:219 #11 Nova\Routing\Route:runWithCustomDispatcher in /home/sangwinco/nova/vendor/nova-framework/system/src/Routing/Route.php:147 #10 Nova\Routing\Route:run in /home/sangwinco/nova/vendor/nova-framework/system/src/Routing/Router.php:690 #9 Nova\Routing\Router:dispatchToRoute in /home/sangwinco/nova/vendor/nova-framework/system/src/Routing/Router.php:653 #8 Nova\Routing\Router:dispatch in /home/sangwinco/nova/vendor/nova-framework/system/src/Foundation/Application.php:766 #7 Nova\Foundation\Application:dispatch in /home/sangwinco/nova/vendor/nova-framework/system/src/Foundation/Application.php:734 #6 Nova\Foundation\Application:handle in /home/sangwinco/nova/shared/Http/ContentGuard.php:67 #5 Shared\Http\ContentGuard:handle in /home/sangwinco/nova/vendor/nova-framework/system/src/Session/Middleware.php:77 #4 Nova\Session\Middleware:handle in /home/sangwinco/nova/vendor/nova-framework/system/src/Cookie/Queue.php:49 #3 Nova\Cookie\Queue:handle in /home/sangwinco/nova/vendor/nova-framework/system/src/Cookie/Guard.php:54 #2 Nova\Cookie\Guard:handle in /home/sangwinco/nova/vendor/stack/builder/src/Stack/StackedHttpKernel.php:23 #1 Stack\StackedHttpKernel:handle in /home/sangwinco/nova/vendor/nova-framework/system/src/Foundation/Application.php:632 #0 Nova\Foundation\Application:run in /home/sangwinco/public_html/index.php:31
Stack frames (29)
28
ErrorException
/
storage
/
views
/
7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php
1
27
ErrorException
/
storage
/
views
/
7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php
1
26
Nova
\
Exception
\
Handler
handleError
/
storage
/
views
/
7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php
1
25
include
/
vendor
/
nova-framework
/
system
/
src
/
View
/
Engines
/
PhpEngine.php
51
24
Nova
\
View
\
Engines
\
PhpEngine
evaluatePath
/
vendor
/
nova-framework
/
system
/
src
/
View
/
Engines
/
CompilerEngine.php
62
23
Nova
\
View
\
Engines
\
CompilerEngine
get
/
vendor
/
nova-framework
/
system
/
src
/
View
/
View.php
145
22
Nova
\
View
\
View
getContents
/
vendor
/
nova-framework
/
system
/
src
/
View
/
View.php
114
21
Nova
\
View
\
View
renderContents
/
vendor
/
nova-framework
/
system
/
src
/
View
/
View.php
83
20
Nova
\
View
\
View
render
/
vendor
/
nova-framework
/
system
/
src
/
View
/
View.php
160
19
Nova
\
View
\
View
gatherData
/
vendor
/
nova-framework
/
system
/
src
/
View
/
View.php
145
18
Nova
\
View
\
View
getContents
/
vendor
/
nova-framework
/
system
/
src
/
View
/
View.php
114
17
Nova
\
View
\
View
renderContents
/
vendor
/
nova-framework
/
system
/
src
/
View
/
View.php
83
16
Nova
\
View
\
View
render
/
app
/
Core
/
Controller.php
73
15
App
\
Core
\
Controller
after
/
vendor
/
nova-framework
/
system
/
src
/
Routing
/
Controller.php
288
14
Nova
\
Routing
\
Controller
callAction
/
vendor
/
nova-framework
/
system
/
src
/
Routing
/
ControllerDispatcher.php
91
13
Nova
\
Routing
\
ControllerDispatcher
call
/
vendor
/
nova-framework
/
system
/
src
/
Routing
/
ControllerDispatcher.php
60
12
Nova
\
Routing
\
ControllerDispatcher
dispatch
/
vendor
/
nova-framework
/
system
/
src
/
Routing
/
Route.php
219
11
Nova
\
Routing
\
Route
runWithCustomDispatcher
/
vendor
/
nova-framework
/
system
/
src
/
Routing
/
Route.php
147
10
Nova
\
Routing
\
Route
run
/
vendor
/
nova-framework
/
system
/
src
/
Routing
/
Router.php
690
9
Nova
\
Routing
\
Router
dispatchToRoute
/
vendor
/
nova-framework
/
system
/
src
/
Routing
/
Router.php
653
8
Nova
\
Routing
\
Router
dispatch
/
vendor
/
nova-framework
/
system
/
src
/
Foundation
/
Application.php
766
7
Nova
\
Foundation
\
Application
dispatch
/
vendor
/
nova-framework
/
system
/
src
/
Foundation
/
Application.php
734
6
Nova
\
Foundation
\
Application
handle
/
shared
/
Http
/
ContentGuard.php
67
5
Shared
\
Http
\
ContentGuard
handle
/
vendor
/
nova-framework
/
system
/
src
/
Session
/
Middleware.php
77
4
Nova
\
Session
\
Middleware
handle
/
vendor
/
nova-framework
/
system
/
src
/
Cookie
/
Queue.php
49
3
Nova
\
Cookie
\
Queue
handle
/
vendor
/
nova-framework
/
system
/
src
/
Cookie
/
Guard.php
54
2
Nova
\
Cookie
\
Guard
handle
/
vendor
/
stack
/
builder
/
src
/
Stack
/
StackedHttpKernel.php
23
1
Stack
\
StackedHttpKernel
handle
/
vendor
/
nova-framework
/
system
/
src
/
Foundation
/
Application.php
632
0
Nova
\
Foundation
\
Application
run
/
home
/
sangwinco
/
public_html
/
index.php
31
<p><a href="<?php echo site_url($record->dept->slug); ?>">Back to Division Home</a></p>
<div class="row">
 
    <div class="col-md-8">
 
        <div class="row">
            <div id="main_area">
                <!-- Slider -->
                <div class="row">
 
                    <h2 class="section-title-2"> <?php echo e($record->title); ?></h2>
 
                    <?php if(count($attachments) > 0): ?>
                        <div class="col-sm-12">
                            <div class="col-xs-12" id="slider">
                                <!-- Top part of the slider -->
                                <div class="row">
                                    <div class="col-sm-12" id="carousel-bounding-box">
 
                                        <div class="carousel slide" id="myCarousel1">
                                            <!-- Carousel items -->
                                            <div class="carousel-inner">
 
                                                <?php 
                                                $i = 0;
                                                 ?>
 
                                                <?php foreach($attachments as $attach): ?>
 
                                                    <?php if($i == 0): ?>
                                                        <div class="active item" data-slide-number="<?php echo $i; ?>">
                                                            <img src="<?php echo resource_url($attach->filePath, 'CaseStudies'); ?>">
                                                        </div>
                                                    <?php else: ?>
                                                        <div class="item" data-slide-number="<?php echo $i; ?>">
                                                            <img src="<?php echo resource_url($attach->filePath, 'CaseStudies'); ?>">
                                                        </div>
                                                    <?php endif; ?>
 
                                                    <?php 
Arguments
  1. "Trying to get property 'slug' of non-object (View: /home/sangwinco/nova/app/Modules/CaseStudies/Views/CaseStudy/Index.tpl)"
    
<p><a href="<?php echo site_url($record->dept->slug); ?>">Back to Division Home</a></p>
<div class="row">
 
    <div class="col-md-8">
 
        <div class="row">
            <div id="main_area">
                <!-- Slider -->
                <div class="row">
 
                    <h2 class="section-title-2"> <?php echo e($record->title); ?></h2>
 
                    <?php if(count($attachments) > 0): ?>
                        <div class="col-sm-12">
                            <div class="col-xs-12" id="slider">
                                <!-- Top part of the slider -->
                                <div class="row">
                                    <div class="col-sm-12" id="carousel-bounding-box">
 
                                        <div class="carousel slide" id="myCarousel1">
                                            <!-- Carousel items -->
                                            <div class="carousel-inner">
 
                                                <?php 
                                                $i = 0;
                                                 ?>
 
                                                <?php foreach($attachments as $attach): ?>
 
                                                    <?php if($i == 0): ?>
                                                        <div class="active item" data-slide-number="<?php echo $i; ?>">
                                                            <img src="<?php echo resource_url($attach->filePath, 'CaseStudies'); ?>">
                                                        </div>
                                                    <?php else: ?>
                                                        <div class="item" data-slide-number="<?php echo $i; ?>">
                                                            <img src="<?php echo resource_url($attach->filePath, 'CaseStudies'); ?>">
                                                        </div>
                                                    <?php endif; ?>
 
                                                    <?php 
Arguments
  1. "Trying to get property 'slug' of non-object"
    
Exception message: Trying to get property 'slug' of non-object
<p><a href="<?php echo site_url($record->dept->slug); ?>">Back to Division Home</a></p>
<div class="row">
 
    <div class="col-md-8">
 
        <div class="row">
            <div id="main_area">
                <!-- Slider -->
                <div class="row">
 
                    <h2 class="section-title-2"> <?php echo e($record->title); ?></h2>
 
                    <?php if(count($attachments) > 0): ?>
                        <div class="col-sm-12">
                            <div class="col-xs-12" id="slider">
                                <!-- Top part of the slider -->
                                <div class="row">
                                    <div class="col-sm-12" id="carousel-bounding-box">
 
                                        <div class="carousel slide" id="myCarousel1">
                                            <!-- Carousel items -->
                                            <div class="carousel-inner">
 
                                                <?php 
                                                $i = 0;
                                                 ?>
 
                                                <?php foreach($attachments as $attach): ?>
 
                                                    <?php if($i == 0): ?>
                                                        <div class="active item" data-slide-number="<?php echo $i; ?>">
                                                            <img src="<?php echo resource_url($attach->filePath, 'CaseStudies'); ?>">
                                                        </div>
                                                    <?php else: ?>
                                                        <div class="item" data-slide-number="<?php echo $i; ?>">
                                                            <img src="<?php echo resource_url($attach->filePath, 'CaseStudies'); ?>">
                                                        </div>
                                                    <?php endif; ?>
 
                                                    <?php 
Arguments
  1. 8
    
  2. "Trying to get property 'slug' of non-object"
    
  3. "/home/sangwinco/nova/storage/views/7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php"
    
  4. 1
    
  5. array:17 [
      "__path" => "/home/sangwinco/nova/storage/views/7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php"
      "__data" => array:14 [
        "__env" => Factory {#429}
        "app" => Application {#3}
        "errors" => MessageBag {#431}
        "version" => "3.77.26"
        "csrfToken" => "6RxdEwILACIeRJw7eN50ZVJC9Ca2YEHS9yE26A0f"
        "currentUri" => "casestudy/commemorative-stone-18"
        "baseUri" => "casestudy/commemorative-stone-18"
        "eventModuleAfterBody" => array:1 [
          0 => array:2 [
            "body" => """
              <div class="modal fade" id="ModalLong" tabindex="-1" role="dialog">\n
                  <div class="modal-dialog" role="document">\n
                      <div class="modal-content">\n
                          <div class="modal-header">\n
                              <h5 class="modal-title" id="title">Title</h5>\n
                              <button type="button" class="close" data-dismiss="modal" aria-label="Close">\n
                                  <span aria-hidden="true">&times;</span>\n
                              </button>\n
                          </div>\n
                          <div class="modal-body">\n
              \n
                          </div>\n
                      </div>\n
                  </div>\n
              </div>\n
              """
            "weight" => 1
          ]
        ]
        "eventModuleJsFiles" => array:1 [
          0 => array:2 [
            "file" => "https://sangwin.co.uk/modules/case-studies/assets/js/casestudies.js"
            "weight" => 1
          ]
        ]
        "eventModuleCssFiles" => []
        "title" => "Commemorative Stone - Case Study"
        "record" => CaseStudy {#467}
        "attachments" => Collection {#460}
        "casestudies" => Collection {#478}
      ]
      "obLevel" => 0
      "__env" => Factory {#429}
      "app" => Application {#3}
      "errors" => MessageBag {#431}
      "version" => "3.77.26"
      "csrfToken" => "6RxdEwILACIeRJw7eN50ZVJC9Ca2YEHS9yE26A0f"
      "currentUri" => "casestudy/commemorative-stone-18"
      "baseUri" => "casestudy/commemorative-stone-18"
      "eventModuleAfterBody" => array:1 [
        0 => array:2 [
          "body" => """
            <div class="modal fade" id="ModalLong" tabindex="-1" role="dialog">\n
                <div class="modal-dialog" role="document">\n
                    <div class="modal-content">\n
                        <div class="modal-header">\n
                            <h5 class="modal-title" id="title">Title</h5>\n
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">\n
                                <span aria-hidden="true">&times;</span>\n
                            </button>\n
                        </div>\n
                        <div class="modal-body">\n
            \n
                        </div>\n
                    </div>\n
                </div>\n
            </div>\n
            """
          "weight" => 1
        ]
      ]
      "eventModuleJsFiles" => array:1 [
        0 => array:2 [
          "file" => "https://sangwin.co.uk/modules/case-studies/assets/js/casestudies.js"
          "weight" => 1
        ]
      ]
      "eventModuleCssFiles" => []
      "title" => "Commemorative Stone - Case Study"
      "record" => CaseStudy {#467}
      "attachments" => Collection {#460}
      "casestudies" => Collection {#478}
    ]
    
    protected function evaluatePath($__path, $__data)
    {
        $obLevel = ob_get_level();
 
        //
        ob_start();
 
        // Extract the rendering variables.
        foreach ($__data as $__variable => $__value) {
            ${$__variable} = $__value;
        }
 
        // Housekeeping...
        unset($__variable, $__value);
 
        // We'll evaluate the contents of the view inside a try/catch block so we can
        // flush out any stray output that might get out before an error occurs or
        // an exception is thrown. This prevents any partial views from leaking.
        try {
            include $__path;
        }
        catch (\Exception $e) {
            $this->handleViewException($e, $obLevel);
        }
        catch (\Throwable $e) {
            $this->handleViewException($e, $obLevel);
        }
 
        return ltrim(ob_get_clean());
    }
 
    /**
     * Handle a View Exception.
     *
     * @param  \Exception  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws $e
     */
Arguments
  1. "/home/sangwinco/nova/storage/views/7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php"
    
     * @param  array   $data
     * @return string
     */
    public function get($path, array $data = array())
    {
        $this->lastCompiled[] = $path;
 
        // If this given view has expired, which means it has simply been edited since
        // it was last compiled, we will re-compile the views so we can evaluate a
        // fresh copy of the view. We'll pass the compiler the path of the view.
        if ($this->compiler->isExpired($path)) {
            $this->compiler->compile($path);
        }
 
        $compiled = $this->compiler->getCompiledPath($path);
 
        // Once we have the path to the compiled file, we will evaluate the paths with
        // typical PHP just like any other templates. We also keep a stack of views
        // which have been rendered for right exception messages to be generated.
        $results = $this->evaluatePath($compiled, $data);
 
        array_pop($this->lastCompiled);
 
        return $results;
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Exception  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws $e
     */
    protected function handleViewException($e, $obLevel)
    {
        if (! $e instanceof \Exception) {
            $e = new FatalThrowableError($e);
        }
Arguments
  1. "/home/sangwinco/nova/storage/views/7f4f5f869f108f560c70ab305bd1d51c62cb8c74.php"
    
  2. array:14 [
      "__env" => Factory {#429}
      "app" => Application {#3}
      "errors" => MessageBag {#431}
      "version" => "3.77.26"
      "csrfToken" => "6RxdEwILACIeRJw7eN50ZVJC9Ca2YEHS9yE26A0f"
      "currentUri" => "casestudy/commemorative-stone-18"
      "baseUri" => "casestudy/commemorative-stone-18"
      "eventModuleAfterBody" => array:1 [
        0 => array:2 [
          "body" => """
            <div class="modal fade" id="ModalLong" tabindex="-1" role="dialog">\n
                <div class="modal-dialog" role="document">\n
                    <div class="modal-content">\n
                        <div class="modal-header">\n
                            <h5 class="modal-title" id="title">Title</h5>\n
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">\n
                                <span aria-hidden="true">&times;</span>\n
                            </button>\n
                        </div>\n
                        <div class="modal-body">\n
            \n
                        </div>\n
                    </div>\n
                </div>\n
            </div>\n
            """
          "weight" => 1
        ]
      ]
      "eventModuleJsFiles" => array:1 [
        0 => array:2 [
          "file" => "https://sangwin.co.uk/modules/case-studies/assets/js/casestudies.js"
          "weight" => 1
        ]
      ]
      "eventModuleCssFiles" => []
      "title" => "Commemorative Stone - Case Study"
      "record" => CaseStudy {#467}
      "attachments" => Collection {#460}
      "casestudies" => Collection {#478}
    ]
    
     *
     * @return array
     */
    public function renderSections()
    {
        $env = $this->factory;
 
        return $this->render(function ($view) use ($env) {
            return $env->getSections();
        });
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
     * Return all variables stored on local and shared data.
     *
     * @return array
     */
    public function gatherData()
    {
        $data = array_merge($this->factory->getShared(), $this->data);
 
        // All nested Views are evaluated before the main View.
        foreach ($data as $key => $value) {
            if ($value instanceof Renderable) {
                $data[$key] = $value->render();
            }
        }
 
        return $data;
    }
Arguments
  1. "/home/sangwinco/nova/app/Modules/CaseStudies/Views/CaseStudy/Index.tpl"
    
  2. array:14 [
      "__env" => Factory {#429}
      "app" => Application {#3}
      "errors" => MessageBag {#431}
      "version" => "3.77.26"
      "csrfToken" => "6RxdEwILACIeRJw7eN50ZVJC9Ca2YEHS9yE26A0f"
      "currentUri" => "casestudy/commemorative-stone-18"
      "baseUri" => "casestudy/commemorative-stone-18"
      "eventModuleAfterBody" => array:1 [
        0 => array:2 [
          "body" => """
            <div class="modal fade" id="ModalLong" tabindex="-1" role="dialog">\n
                <div class="modal-dialog" role="document">\n
                    <div class="modal-content">\n
                        <div class="modal-header">\n
                            <h5 class="modal-title" id="title">Title</h5>\n
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">\n
                                <span aria-hidden="true">&times;</span>\n
                            </button>\n
                        </div>\n
                        <div class="modal-body">\n
            \n
                        </div>\n
                    </div>\n
                </div>\n
            </div>\n
            """
          "weight" => 1
        ]
      ]
      "eventModuleJsFiles" => array:1 [
        0 => array:2 [
          "file" => "https://sangwin.co.uk/modules/case-studies/assets/js/casestudies.js"
          "weight" => 1
        ]
      ]
      "eventModuleCssFiles" => []
      "title" => "Commemorative Stone - Case Study"
      "record" => CaseStudy {#467}
      "attachments" => Collection {#460}
      "casestudies" => Collection {#478}
    ]
    
 
            throw $e;
        }
    }
 
    /**
     * Render the View and return the result.
     *
     * @return string
     */
    public function renderContents()
    {
        // We will keep track of the amount of views being rendered so we can flush
        // the section after the complete rendering operation is done. This will
        // clear out the sections for any separate views that may be rendered.
        $this->factory->incrementRender();
 
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the sections of the rendered view.
     *
     * @return array
     */
    public function renderSections()
    {
        $env = $this->factory;
 
        return $this->render(function ($view) use ($env) {
            return $env->getSections();
        $this->factory = $factory;
        $this->engine  = $engine;
 
        //
        $this->view = $view;
        $this->path = $path;
 
        $this->data = ($data instanceof Arrayable) ? $data->toArray() : (array) $data;
    }
 
    /**
     * Get the string contents of the View.
     *
     * @param  \Closure  $callback
     * @return string
     */
    public function render(Closure $callback = null)
    {
        try {
            $contents = $this->renderContents();
 
            $response = isset($callback) ? $callback($this, $contents) : null;
 
            // Once we have the contents of the view, we will flush the sections if we are
            // done rendering all views so that there is nothing left hanging over when
            // another view gets rendered in the future by the application developer.
            $this->factory->flushSectionsIfDoneRendering();
 
            return $response ?: $contents;
        } catch (Exception $e) {
            $this->factory->flushSections();
 
            throw $e;
        }
    }
 
    /**
     * Render the View and return the result.
     *
     * @return string
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
     * Return all variables stored on local and shared data.
     *
     * @return array
     */
    public function gatherData()
    {
        $data = array_merge($this->factory->getShared(), $this->data);
 
        // All nested Views are evaluated before the main View.
        foreach ($data as $key => $value) {
            if ($value instanceof Renderable) {
                $data[$key] = $value->render();
            }
        }
 
        return $data;
    }
 
    /**
     * Add a view instance to the view data.
     *
     * <code>
     *     // Add a View instance to a View's data
     *     $view = View::make('foo')->nest('footer', 'Partials/Footer');
     *
     *     // Equivalent functionality using the "with" method
     *     $view = View::make('foo')->with('footer', View::make('Partials/Footer'));
     * </code>
     *
     * @param  string  $key
     * @param  string  $view
     * @param  array   $data
     *
     * @return array
     */
    public function renderSections()
    {
        $env = $this->factory;
 
        return $this->render(function ($view) use ($env) {
            return $env->getSections();
        });
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
     * Return all variables stored on local and shared data.
     *
     * @return array
     */
    public function gatherData()
    {
        $data = array_merge($this->factory->getShared(), $this->data);
 
        // All nested Views are evaluated before the main View.
        foreach ($data as $key => $value) {
            if ($value instanceof Renderable) {
                $data[$key] = $value->render();
            }
        }
 
        return $data;
    }
 
            throw $e;
        }
    }
 
    /**
     * Render the View and return the result.
     *
     * @return string
     */
    public function renderContents()
    {
        // We will keep track of the amount of views being rendered so we can flush
        // the section after the complete rendering operation is done. This will
        // clear out the sections for any separate views that may be rendered.
        $this->factory->incrementRender();
 
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the sections of the rendered view.
     *
     * @return array
     */
    public function renderSections()
    {
        $env = $this->factory;
 
        return $this->render(function ($view) use ($env) {
            return $env->getSections();
        $this->factory = $factory;
        $this->engine  = $engine;
 
        //
        $this->view = $view;
        $this->path = $path;
 
        $this->data = ($data instanceof Arrayable) ? $data->toArray() : (array) $data;
    }
 
    /**
     * Get the string contents of the View.
     *
     * @param  \Closure  $callback
     * @return string
     */
    public function render(Closure $callback = null)
    {
        try {
            $contents = $this->renderContents();
 
            $response = isset($callback) ? $callback($this, $contents) : null;
 
            // Once we have the contents of the view, we will flush the sections if we are
            // done rendering all views so that there is nothing left hanging over when
            // another view gets rendered in the future by the application developer.
            $this->factory->flushSectionsIfDoneRendering();
 
            return $response ?: $contents;
        } catch (Exception $e) {
            $this->factory->flushSections();
 
            throw $e;
        }
    }
 
    /**
     * Render the View and return the result.
     *
     * @return string
 
    /**
     * Method executed after any action.
     *
     * @param mixed  $response
     *
     * @return \Symfony\Component\HttpFoundation\Response
     */
    protected function after($response)
    {
        if ($response instanceof Renderable) {
            // If the response which is returned from the called Action is a Renderable instance,
            // we will assume we want to render it using the Controller's themed environment.
 
            if ((! $response instanceof Layout) && ! empty($this->layout)) {
                $response = $this->getLayout()->with('content', $response);
            }
 
            // Create and return a proper Response instance.
            $content = $response->render();
 
            return Response::make($content);
        }
 
        return parent::after($response);
    }
 
    /**
     * Return a default View instance.
     *
     * @return \Nova\View\View
     * @throws \BadMethodCallException
     */
    protected function getView(array $data = array())
    {
        // Get the currently called method.
        $method = $this->getMethod();
 
         // Transform the complete class name on a path like variable.
        $path = str_replace('\\', '/', static::class);
     * @param string  $method
     * @param array   $params
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function callAction($method, $parameters)
    {
        $this->method = $method;
 
        $this->parameters = $parameters;
 
        // Execute the Before method.
        $response = $this->before();
 
        if (is_null($response)) {
            // Execute the requested Method.
            $response = call_user_func_array(array($this, $method), $parameters);
        }
 
        // Process the Response and return it.
        return $this->after($response);
    }
 
    /**
     * Handle calls to missing methods on the Controller.
     *
     * @param  array   $parameters
     * @return mixed
     *
     * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
     */
    public function missingMethod($parameters = array())
    {
        throw new NotFoundHttpException("Controller method not found.");
    }
 
    /**
     * Returns the currently called Method.
     *
     * @return string|null
     */
Arguments
  1. Layout {#470}
    
    protected function makeController($controller)
    {
        Controller::setFilterer($this->filterer);
 
        return $this->container->make($controller);
    }
 
    /**
     * Call the given controller instance method.
     *
     * @param  \Nova\Routing\Controller  $instance
     * @param  \Nova\Routing\Route  $route
     * @param  string  $method
     * @return mixed
     */
    protected function call($instance, $route, $method)
    {
        $parameters = $route->parametersWithoutNulls();
 
        return $instance->callAction($method, $parameters);
    }
 
    /**
     * Call the "before" filters for the controller.
     *
     * @param  \Nova\Routing\Controller  $instance
     * @param  \Nova\Routing\Route  $route
     * @param  \Nova\Http\Request  $request
     * @param  string  $method
     * @return mixed
     */
    protected function before($instance, $route, $request, $method)
    {
        foreach ($instance->getBeforeFilters() as $filter) {
            if ($this->filterApplies($filter, $request, $method)) {
                $response = $this->callFilter($filter, $route, $request);
 
                if (! is_null($response)) return $response;
            }
        }
Arguments
  1. "index"
    
  2. array:1 [
      "slug" => "commemorative-stone-18"
    ]
    
    /**
     * Dispatch a request to a given controller and method.
     *
     * @param  \Nova\Routing\Route  $route
     * @param  \Nova\Http\Request  $request
     * @param  string  $controller
     * @param  string  $method
     * @return mixed
     */
    public function dispatch(Route $route, Request $request, $controller, $method)
    {
        $instance = $this->makeController($controller);
 
        $this->assignAfter($instance, $route, $request, $method);
 
        //
        $response = $this->before($instance, $route, $request, $method);
 
        if (is_null($response)) {
            $response = $this->call($instance, $route, $method);
        }
 
        return $response;
    }
 
    /**
     * Make a controller instance via the IoC container.
     *
     * @param  string  $controller
     * @return mixed
     */
    protected function makeController($controller)
    {
        Controller::setFilterer($this->filterer);
 
        return $this->container->make($controller);
    }
 
    /**
     * Call the given controller instance method.
Arguments
  1. CaseStudy {#459}
    
  2. Route {#216}
    
  3. "index"
    
     * @return bool
     */
    protected function customDispatcherIsBound()
    {
        return $this->container->bound('framework.route.dispatcher');
    }
 
    /**
     * Send the request and route to a custom dispatcher for handling.
     *
     * @param  \Nova\Http\Request  $request
     * @return mixed
     */
    protected function runWithCustomDispatcher(Request $request)
    {
        list($class, $method) = explode('@', $this->action['uses']);
 
        $dispatcher = $this->container->make('framework.route.dispatcher');
 
        return $dispatcher->dispatch($this, $request, $class, $method);
    }
 
    /**
     * Checks if a Request matches the Route pattern.
     *
     * @param \Http\Request $request The dispatched Request instance
     * @param bool $includingMethod Wheter or not is matched the HTTP Method
     * @return bool Match status
     */
    public function matches(Request $request, $includingMethod = true)
    {
        $this->compileRoute();
 
        foreach ($this->getValidators() as $validator) {
            if (! $includingMethod && ($validator instanceof MethodValidator)) continue;
 
            if (! $validator->matches($this, $request)) return false;
        }
 
        return true;
Arguments
  1. Route {#216}
    
  2. Request {#2}
    
  3. "App\Modules\CaseStudies\Controllers\CaseStudy"
    
  4. "index"
    
        }
    }
 
    /**
     * Run the route action and return the response.
     *
     * @param  \Nova\Http\Request  $request
     * @return mixed
     */
    public function run(Request $request)
    {
        $this->container = $this->container ?: new Container();
 
        try {
            if (! is_string($this->action['uses'])) {
                return $this->runCallable($request);
            }
 
            if ($this->customDispatcherIsBound()) {
                return $this->runWithCustomDispatcher($request);
            }
 
            return $this->runController($request);
        }
        catch (HttpResponseException $e) {
            return $e->getResponse();
        }
    }
 
    /**
     * Run the route action and return the response.
     *
     * @param  \Nova\Http\Request  $request
     * @return mixed
     */
    protected function runCallable(Request $request)
    {
        $callable = $this->action['uses'];
 
        $parameters = $this->resolveMethodDependencies(
Arguments
  1. Request {#2}
    
     */
    public function dispatchToRoute(Request $request)
    {
        // Execute the Routes matching.
        $route = $this->findRoute($request);
 
        $request->setRouteResolver(function() use ($route)
        {
            return $route;
        });
 
        $this->events->fire('router.matched', array($route, $request));
 
        // Once we have successfully matched the incoming request to a given route we
        // can call the before filters on that route. This works similar to global
        // filters in that if a response is returned we will not call the route.
        $response = $this->callRouteBefore($route, $request);
 
        if (is_null($response)) {
            $response = $route->run($request);
        }
 
        // Prepare the Reesponse.
        $response = $this->prepareResponse($request, $response);
 
        // After we have a prepared response from the route or filter we will call to
        // the "after" filters to do any last minute processing on this request or
        // response object before the response is returned back to the consumer.
        $this->callRouteAfter($route, $request, $response);
 
        return $response;
    }
 
    /**
     * Dispatch the request to a asset file and return the response.
     *
     * @param  \Nova\Http\Request  $request
     * @return mixed
     */
    public function dispatchToFile(Request $request)
Arguments
  1. Request {#2}
    
    /**
     * Dispatch route
     * @return bool
     */
    public function dispatch(Request $request)
    {
        $this->currentRequest = $request;
 
        // Asset Files Dispatching.
        $response = $this->dispatchToFile($request);
 
        if (! is_null($response)) return $response;
 
        // If no response was returned from the before filter, we will call the proper
        // route instance to get the response. If no route is found a response will
        // still get returned based on why no routes were found for this request.
        $response = $this->callFilter('before', $request);
 
        if (is_null($response)) {
            $response = $this->dispatchToRoute($request);
        }
 
        $response = $this->prepareResponse($request, $response);
 
        // Once this route has run and the response has been prepared, we will run the
        // after filter to do any last work on the response or for this application
        // before we will return the response back to the consuming code for use.
        $this->callFilter('after', $request, $response);
 
        return $response;
    }
 
    /**
     * Dispatch the request to a route and return the response.
     *
     * @param  \Nova\Http\Request  $request
     * @return mixed
     */
    public function dispatchToRoute(Request $request)
    {
Arguments
  1. Request {#2}
    
 
    /**
     * Handle the given request and get the response.
     *
     * @param  \Nova\Http\Request  $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function dispatch(Request $request)
    {
        if ($this->isDownForMaintenance()) {
            $response = $this['events']->until('nova.app.down');
 
            if (! is_null($response)) return $this->prepareResponse($response, $request);
        }
 
        if ($this->runningUnitTests() && ! $this['session']->isStarted()) {
            $this['session']->start();
        }
 
        return $this['router']->dispatch($this->prepareRequest($request));
    }
 
    /**
     * Call the "finish" and "shutdown" callbacks assigned to the application.
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @param  \Symfony\Component\HttpFoundation\Response  $response
     * @return void
     */
    public function terminate(SymfonyRequest $request, SymfonyResponse $response)
    {
        $this->callFinishCallbacks($request, $response);
 
        $this->shutdown();
    }
 
    /**
     * Refresh the bound request instance in the container.
     *
     * @param  \Nova\Http\Request  $request
Arguments
  1. Request {#2}
    
     *
     * Provides compatibility with BrowserKit functional testing.
     *
     * @implements HttpKernelInterface::handle
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @param  int   $type
     * @param  bool  $catch
     * @return \Symfony\Component\HttpFoundation\Response
     *
     * @throws \Exception
     */
    public function handle(SymfonyRequest $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
    {
        try {
            $this->refreshRequest($request = Request::createFromBase($request));
 
            $this->boot();
 
            return $this->dispatch($request);
        }
        catch (\Exception $e) {
            if (! $catch || $this->runningUnitTests()) throw $e;
 
            return $this['exception']->handleException($e);
        }
        catch (\Throwable $e) {
            if (! $catch || $this->runningUnitTests()) throw $e;
 
            return $this['exception']->handleException($e);
        }
    }
 
    /**
     * Handle the given request and get the response.
     *
     * @param  \Nova\Http\Request  $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function dispatch(Request $request)
Arguments
  1. Request {#2}
    
    public function __construct(HttpKernelInterface $app, $debug)
    {
        $this->app = $app;
 
        $this->debug = $debug;
    }
 
    /**
     * Handle the given request and get the response.
     *
     * @implements HttpKernelInterface::handle
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @param  int   $type
     * @param  bool  $catch
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function handle(SymfonyRequest $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
    {
        $response = $this->app->handle($request, $type, $catch);
 
        if (! $this->isHtmlResponse($response)) return $response;
 
        return $this->processResponse($response);
    }
 
    /**
     * Minify the Response instance Content.
     *
     * @param  \Symfony\Component\HttpFoundation\Response $response
     * @return void
     */
    protected function processResponse(SymfonyResponse $response)
    {
        if ($this->debug) {
            // Insert the QuickProfiler Widget in the Response's Content.
            $content = str_replace(
                array(
                    '<!-- DO NOT DELETE! - Forensics Profiler -->',
                    '<!-- DO NOT DELETE! - Profiler -->',
Arguments
  1. Request {#2}
    
  2. 1
    
  3. true
    
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @param  int   $type
     * @param  bool  $catch
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
    {
        $this->checkRequestForArraySessions($request);
 
        // If a session driver has been configured, we will need to start the session here
        // so that the data is ready for an application. Note that the Nova sessions
        // do not make use of PHP "native" sessions in any way since they are crappy.
        if ($this->sessionConfigured()) {
            $session = $this->startSession($request);
 
            $request->setSession($session);
        }
 
        $response = $this->app->handle($request, $type, $catch);
 
        // Again, if the session has been configured we will need to close out the session
        // so that the attributes may be persisted to some storage medium. We will also
        // add the session identifier cookie to the application response headers now.
        if ($this->sessionConfigured()) {
            $this->closeSession($session);
 
            $this->addCookieToResponse($response, $session);
        }
 
        return $response;
    }
 
    /**
     * Check the request and reject callback for array sessions.
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @return void
     */
    public function checkRequestForArraySessions(Request $request)
Arguments
  1. Request {#2}
    
  2. 1
    
  3. true
    
     */
    public function __construct(HttpKernelInterface $app, CookieJar $cookies)
    {
        $this->app = $app;
        $this->cookies = $cookies;
    }
 
    /**
     * Handle the given request and get the response.
     *
     * @implements HttpKernelInterface::handle
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @param  int   $type
     * @param  bool  $catch
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
    {
        $response = $this->app->handle($request, $type, $catch);
 
        foreach ($this->cookies->getQueuedCookies() as $cookie) {
            $response->headers->setCookie($cookie);
        }
 
        return $response;
    }
 
}
 
Arguments
  1. Request {#2}
    
  2. 1
    
  3. true
    
     */
    public function __construct(HttpKernelInterface $app, Encrypter $encrypter)
    {
        $this->app = $app;
        $this->encrypter = $encrypter;
    }
 
    /**
     * Handle the given request and get the response.
     *
     * @implements HttpKernelInterface::handle
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @param  int   $type
     * @param  bool  $catch
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
    {
        $response = $this->app->handle($this->decrypt($request), $type, $catch);
 
        return $this->encrypt($response);
    }
 
    /**
     * Decrypt the cookies on the request.
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @return \Symfony\Component\HttpFoundation\Request
     */
    protected function decrypt(Request $request)
    {
        foreach ($request->cookies as $key => $cookie) {
            if($key == 'PHPSESSID') {
                // Leave alone the PHPSESSID.
                continue;
            }
 
            try
            {
Arguments
  1. Request {#2}
    
  2. 1
    
  3. true
    
 
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\TerminableInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
 
class StackedHttpKernel implements HttpKernelInterface, TerminableInterface
{
    private $app;
    private $middlewares = array();
 
    public function __construct(HttpKernelInterface $app, array $middlewares)
    {
        $this->app = $app;
        $this->middlewares = $middlewares;
    }
 
    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
    {
        return $this->app->handle($request, $type, $catch);
    }
 
    public function terminate(Request $request, Response $response)
    {
        $prevKernel = null;
        foreach ($this->middlewares as $kernel) {
            // if prev kernel was terminable we can assume this middleware has already been called
            if (!$prevKernel instanceof TerminableInterface && $kernel instanceof TerminableInterface) {
                $kernel->terminate($request, $response);
            }
            $prevKernel = $kernel;
        }
    }
}
 
Arguments
  1. Request {#2}
    
  2. 1
    
  3. true
    
     * @return void
     */
    public function booted($callback)
    {
        $this->bootedCallbacks[] = $callback;
 
        if ($this->isBooted()) $this->fireAppCallbacks(array($callback));
    }
 
    /**
     * Run the application and send the response.
     *
     * @param  \Symfony\Component\HttpFoundation\Request  $request
     * @return void
     */
    public function run(SymfonyRequest $request = null)
    {
        $request = $request ?: $this['request'];
 
        $response = with($stack = $this->getStackedClient())->handle($request);
 
        $response->send();
 
        $stack->terminate($request, $response);
    }
 
    /**
     * Get the stacked HTTP kernel for the application.
     *
     * @return  \Symfony\Component\HttpKernel\HttpKernelInterface
     */
    protected function getStackedClient()
    {
        $sessionReject = $this->bound('session.reject') ? $this['session.reject'] : null;
 
        $client = (new Builder)
                    ->push('Nova\Cookie\Guard', $this['encrypter'])
                    ->push('Nova\Cookie\Queue', $this['cookie'])
                    ->push('Nova\Session\Middleware', $this['session'], $sessionReject);
 
Arguments
  1. Request {#2}
    
 
define('PUBLICDIR', realpath(__DIR__) .DS);
 
//--------------------------------------------------------------------------
// Load the Composer Autoloader
//--------------------------------------------------------------------------
 
require ROOTDIR .'vendor' .DS .'autoload.php';
 
//--------------------------------------------------------------------------
// Bootstrap the Framework and get the Application instance
//--------------------------------------------------------------------------
 
$app = require_once APPDIR .'Boot' .DS .'Start.php';
 
//--------------------------------------------------------------------------
// Run the Application
//--------------------------------------------------------------------------
 
$app->run();
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
CONTEXT_DOCUMENT_ROOT
"/home/sangwinco/public_html"
CONTEXT_PREFIX
""
DOCUMENT_ROOT
"/home/sangwinco/public_html"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"sangwin.co.uk"
HTTP_REFERER
"http://sangwin.co.uk/casestudy/commemorative-stone-18"
HTTP_USER_AGENT
"claudebot"
HTTP_X_HTTPS
"1"
PATH
"/bin:/usr/bin"
QUERY_STRING
""
REDIRECT_HTTPS
"on"
REDIRECT_SCRIPT_URI
"https://sangwin.co.uk/casestudy/commemorative-stone-18"
REDIRECT_SCRIPT_URL
"/casestudy/commemorative-stone-18"
REDIRECT_SSL_TLS_SNI
"sangwin.co.uk"
REDIRECT_STATUS
"200"
REDIRECT_UNIQUE_ID
"ZgW-sD17JItTBdVUzDFzmAAAAQw"
REDIRECT_URL
"/casestudy/commemorative-stone-18"
REMOTE_ADDR
"54.198.45.0"
REMOTE_PORT
"44444"
REQUEST_METHOD
"GET"
REQUEST_SCHEME
"https"
REQUEST_URI
"/casestudy/commemorative-stone-18"
SCRIPT_FILENAME
"/home/sangwinco/public_html/index.php"
SCRIPT_NAME
"/index.php"
SCRIPT_URI
"https://sangwin.co.uk/casestudy/commemorative-stone-18"
SCRIPT_URL
"/casestudy/commemorative-stone-18"
SERVER_ADDR
"213.230.222.4"
SERVER_ADMIN
"webmaster@sangwin.co.uk"
SERVER_NAME
"sangwin.co.uk"
SERVER_PORT
"443"
SERVER_PROTOCOL
"HTTP/1.1"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SSL_TLS_SNI
"sangwin.co.uk"
TZ
"Europe/London"
UNIQUE_ID
"ZgW-sD17JItTBdVUzDFzmAAAAQw"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1711652528.9361
REQUEST_TIME
1711652528
argv
[]
argc
0
empty
0. Whoops\Handler\PrettyPageHandler