2016-05-13 43 views
-2

我在控制器的开头声明了use Illuminate\Support\Facades\Input;,所以我不确定它为什么会抛出这个错误。我无法对此进行很好的测试,因为表单只能在生产服务器上运行,而不能在我的开发服务器上运行。在生产服务器上找不到错误类'App Http Controllers Input'

这是控制器

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Input; 
use Validator; 
use Redirect; 
use Mail; 

use App\Http\Requests; 

class contact extends controller 
{ 
    // This function will show the view 
    public function showForm() 
    { 
     return view('pages.contact'); 
    } 

    public function handleFormPost() 
    { 
     $input = Input::only('name', 'email', 'msg'); 

     $validator = Validator::make($input, 
      array(
       'name' => 'required', 
       'email' => 'required|email', 
       'msg' => 'required', 
      ) 
     ); 

     if ($validator->fails()) 
     { 
      return Redirect::to('contact')->with('errors', $validator->messages()); 
     } else { // the validation has not failed, it has passed 


      // Send the email with the contactemail view, the user input 
      Mail::send('contactemail', $input, function($message) 
      { 
       $message->from('[email protected]', 'Your Name'); 

       $message->to('[email protected]'); 
      }); 

      // Specify a route to go to after the message is sent to provide the user feedback 
      return Redirect::to('thanks'); 
     } 

    } 
} 

这是形式

<div class="container"> 
    <h1>A basic contact form</h1> 
    <form id="contact" method="post" class="form" role="form"> 

     @if(Session::has('errors')) 
      <div class="alert alert-warning"> 
       @foreach(Session::get('errors')->all() as $error_message) 
        <p>{{ $error_message }}</p> 
       @endforeach 
      </div> 
     @endif 

     <div class="row"> 
      <div class="col-xs-6 col-md-6 form-group"> 
       <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
       <input class="form-control" id="name" name="name" placeholder="Name" type="text"autofocus=""> 
      </div> 
      <div class="col-xs-6 col-md-6 form-group"> 
       <input class="form-control" id="email" name="email" placeholder="Email" type="text"> 
      </div> 
     </div> 
     <textarea class="form-control" id="message" name="msg" placeholder="Message" rows="5"></textarea> 
     <br> 
     <div class="row"> 
      <div class="col-xs-12 col-md-12 form-group"> 
       <button class="btn btn-primary pull-right" type="submit">Submit</button> 
      </div> 
     </div> 
    </form> 
</div> 

任何帮助将不胜感激!谢谢!

+2

从另一个帐户几乎相同的职位?你应该编辑[这一个](http://stackoverflow.com/questions/37202978/fatal-error-class-app-http-controllers-input-not-found-when-sending-a-form),而不是张贴来自另一个帐户的新问题。 –

+0

虽然这是一个不同的问题。对不起,如果我提交它很差。只是想解决这个问题,所以我可以睡 – user2238780

+0

@ user2238780看起来像同样的问题,具有相同的答案。 – ceejayoz

回答

0

夫妇解决方案的

试试这个:

$input = \Input::only('name', 'email', 'msg'); 

或者尝试改变这一点:

use Illuminate\Support\Facades\Input; 

这样:

use Input; 
1

Laravel 5移动输入到请求。

https://laravel.com/docs/5.2/requests#retrieving-input

无论是注入请求进入功能:

public function handleFormPost(Request $request) { 
    $input = $request->only('whatever'); 

或使用Request门面(你会在文件的顶部需要一个use Request;):

public function handleFormPost() { 
    $input = Request::only('whatever'); 
相关问题