title: Laravel 5: Method [validateTime] does not exist
body: <p>When I'm trying to update my project and doing a POST request to my ProjectsController I get the following error:</p>
  
  <blockquote>
    <p>Method [validateTime] does not exist</p>
  </blockquote>
  
  <p>At first I was using a custom request, but after some researching I took to making a Validator in the controller, resulting in the following code in my Controller Update function:</p>
  
  <pre><code>   /**
       * @param Req $request
       * @param \App\Project $project
       *
       * @return string
       */
      public function update(Req $request, Project $project)
      {
          if ( ! Request::ajax()) {
  
          $sTitle = implode(' '.Config::get('properties.title_separator').' ', [
              $project-&gt;name,
              __('Edit')
          ]);
          $sHeader = $project-&gt;name . ' ' . __('Settings');
  
          $deadline = new DateTime($project-&gt;deadline);
  
          if ($request-&gt;isMethod('POST')) {
  
              $aRules = [
                  'name'          =&gt; 'string|required',
                  'desc'          =&gt; 'string',
                  'date'          =&gt; 'date|required',
                  'time'          =&gt; 'time|required',
                  'status'        =&gt; 'string|required',
                  'priority'      =&gt; 'string|required'
              ];
              $aMessages = [
                  'name.required'     =&gt; 'If you can\'t name your project, at least name it Voldemort or something',
                  'name.string'       =&gt; 'A textual value would be appreciated kthxbye',
                  'desc.string'       =&gt; 'Don\'t worry, PCs understand Latin script, you don\'t have to write in binary!',
                  'date.required'     =&gt; 'Everyone who\'s working on this project is stuck on it for all eternity..! Give it a deadline m8',
                  'date.date'         =&gt; 'Time is the one thing that outlives all, if it\'s a valid date that is..',
                  'time.required'     =&gt; 'Dude if there\'s no specific time, just add 00:00',
                  'time.time'         =&gt; 'No, putting "beer\'o\'clock" in here is not going to work.',
                  'status.required'   =&gt; 'If nobody\'s working on a project, means it\'s "On hold"! At least put that as a status',
                  'priority'          =&gt; 'Should we even care? A sense of priority might be nice'
              ];
  
              $oValidator = Validator::make($request-&gt;all(), $aRules, $aMessages);
  
              if ($oValidator-&gt;fails()) {
                  $aErrors = $oValidator-&gt;errors();
              }
  
              if (count($aErrors) == 0) {
                  $project-&gt;name          = $request-&gt;input('name');
                  $project-&gt;description   = $request-&gt;input('desc');
                  $project-&gt;deadline      = DateTime::createFromFormat(
                      'Y-m-d H:i:s',
                      $request-&gt;input('date') . ' '. $request-&gt;input('time')
                  );
                  $project-&gt;status        = $request-&gt;input('status');
                  $project-&gt;priority      = $request-&gt;input('priority');
  
                  $project-&gt;save();
  
  
                  $this-&gt;redirectWithAlert(
                      'success',
                      __FUNCTION__,
                      'project',
                      $project-&gt;name,
                      'projects/'.$project-&gt;id
                  );
              } else {
                  return view(
                      $this-&gt;prefix.'edit',
                      compact(
                          'sTitle',
                          'sHeader',
                          'project',
                          'deadline'
                      )
                  )-&gt;withErrors($aErrors);
              }
          }
  
      } else {
          // Check if item is defined
          if ($_POST['id'] &amp;&amp; $_POST['status']) {
  
              // Find project with defined id
              $oProject = Project::find($_POST['id']);
  
              // Get Authenticated user and adhering projectRole
              $oLoggedInUser = Auth::user();
              $oProjectRole = $oLoggedInUser-&gt;projectRole()-&gt;where('project_id', $oProject-&gt;id)-&gt;first();
  
              // If project is found, change and save it's status
              if($oProject &amp;&amp; $oProjectRole-&gt;name == 'Projectbeheerder') {
                  switch ($_POST['status']) {
                      case 'inprogress':
                          $oProject-&gt;status = 'in progress';
                          break;
                      case 'onhold':
                          $oProject-&gt;status = 'on hold';
                          break;
                      case 'complete':
                          $oProject-&gt;status = 'complete';
                          break;
                  }
  
                  $oProject-&gt;save();
                  return json_encode('Project\'s status changed!');
              }
              return json_encode('Couldn\'t find project or not authorized!');
          }
  
          return json_encode('Project not specified!');
      }
  }
  </code></pre>
  
  <p>However I still get the same error and have found no possible solution. I'm using the Validator class via <code>use Illuminate\Support\Facades\Validator;</code>.
  Below are my form and route, should they be of any help.</p>
  
  <p>edit.blade.php:</p>
  
  <pre><code>&lt;form action="{{ url('projects/' . $project-&gt;id . '/update') }}" class="data-form" method="POST"&gt;
                  {{ csrf_field() }}
                  &lt;label for="name" class="data-label"&gt;Name&lt;/label&gt;
                  &lt;input id="holder" type="text" class="data-input" name="name" value="{{ $project-&gt;name }}" data-id="{{ $project-&gt;id }}"&gt;
                  &lt;label for="desc" class="data-label"&gt;Description&lt;/label&gt;
                  &lt;textarea class="data-textarea" name="desc" placeholder="Type your description here"&gt;{{ $project-&gt;description }}&lt;/textarea&gt;
                  &lt;label for="date" class="data-label"&gt;Deadline&lt;/label&gt;
                  &lt;div class="data-input"&gt;
                      &lt;input type="date" class="data-date" name="date" value="{{ $deadline-&gt;format('d - m - Y') }}"&gt;
                      &lt;input type="time" class="data-time" name="time" value="{{ $deadline-&gt;format('HH:mm') }}"&gt;
                  &lt;/div&gt;
                  &lt;label for="status" class="data-label"&gt;Status&lt;/label&gt;
                  &lt;select name="status" id="" class="data-select"&gt;
                      &lt;option value="on hold"&gt;On hold&lt;/option&gt;
                      &lt;option value="in progress"&gt;In progress&lt;/option&gt;
                      &lt;option value="complete"&gt;Complete&lt;/option&gt;
                  &lt;/select&gt;
                  &lt;label for="priority" class="data-label"&gt;Priority&lt;/label&gt;
                  &lt;select name="priority" class="data-select"&gt;
                      &lt;option value="low"&gt;Low&lt;/option&gt;
                      &lt;option value="normal"&gt;Normal&lt;/option&gt;
                      &lt;option value="high"&gt;High&lt;/option&gt;
                      &lt;option value="highest"&gt;Highest&lt;/option&gt;
                  &lt;/select&gt;
                  &lt;p class="data-label"&gt;Project creator&lt;/p&gt;
                  &lt;span class="data-span"&gt;{{ $project-&gt;madeBy()-&gt;nameFormatter() }}&lt;/span&gt;
                  &lt;input type="submit" class="data-submit" name="submit" value="Submit changes"&gt;
              &lt;/form&gt;
  </code></pre>
  
  <p>web.php:</p>
  
  <pre><code>Route::post(
                      'update',
                      ['as' =&gt; 'projects.edit', 'uses' =&gt; 'ProjectsController@update']
                  ); // with prefix this becomes projects/{project}/update
  </code></pre>