繁体   English   中英

Laravel 5.1 $ this-> validate(…)引发错误

[英]Laravel 5.1 $this->validate(…) throws error

我正在尝试使用laravel的验证( http://laravel.com/docs/5.1/validation )将验证添加到我的资源控制器,但出现此错误:

ErrorException in ValidatesRequests.php line 30:
Argument 1 passed to App\Http\Controllers\Controller::validate() must be an 
instance of Illuminate\Http\Request, 
instance of Illuminate\Support\Facades\Request given,
called in 
/Users/lextoc/Documents/Sites/partyrecycler/app/
Http/Controllers/MarkerController.php on line 30 and defined

这是控制器:

namespace App\Http\Controllers;

use Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Marker;

class MarkerController extends Controller
{
    ...

    public function create()
    {
        return view('markers.create');
    }

    public function store(Request $request)
    {
        $this->validate($request, [
            'name'  => 'required|max:255',
            'x'     => 'required',
            'y'     => 'required',
        ]);

        $marker=Request::all();
        Marker::create($marker);
        return redirect('markers');
    }

    ...
}

和视图:

<h1>Create marker</h1>
@if (count($errors) > 0)
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
{!! Form::open(array('route' => 'markers.store')) !!}
    {!! csrf_field() !!}

    <div>
        Name
        <input type="text" name="name">
    </div>

    <div>
        x
        <input type="text" name="x">
    </div>

    <div>
        y
        <input type="text" name="y">
    </div>

    <div>
        <button type="submit">Create</button>
    </div>
{!! Form::close() !!}

我不知道为什么它使用错误的Request类,以及为什么在控制器中使用了两个?

该错误归因于您的include标头:

尝试

use Illuminate\Http\Request;

代替

use Request;

例:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Marker;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM