【问题标题】:Getting error Class 'App\Http\Controllers\Input' not found on production server在生产服务器上找不到错误类“App\Http\Controllers\Input”
【发布时间】:2016-05-13 07:32:10
【问题描述】:

我在控制器的开头声明了use Illuminate\Support\Facades\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('idocompscihw@gmail.com', 'Your Name');

                $message->to('idocompscihw@gmail.com');
            });

            // 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>

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

【问题讨论】:

  • 来自另一个帐户的几乎相同的帖子?您应该编辑 this one 而不是从另一个帐户发布新问题。
  • 这是一个不同的问题。对不起,如果我提交得很糟糕。只是想解决问题,这样我就可以睡觉了
  • @user2238780 看起来同样的问题,同样的答案。

标签: html laravel


【解决方案1】:

几个解决方案

试试这个:

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

或者尝试改变这个:

use Illuminate\Support\Facades\Input;

到这里:

use Input;

【讨论】:

    【解决方案2】:

    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');
    

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 2016-08-27
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-05
      • 2020-02-02
      相关资源
      最近更新 更多