【问题标题】:what is the correct way of form validation in laravel?laravel中表单验证的正确方法是什么?
【发布时间】:2017-06-27 09:11:39
【问题描述】:

我刚刚创建了表单,动作是PagesController@check,验证如下:

@extends('layout')

@section('content')

<div class = "container">
    {!! Form::open(['action' => 'PagesController@check' , 'method' => 'POST']) !!}

        <div class = "form-group">
            {{ Form::label('country','Country')}}
            {{ Form::text('country','', ['class' => 'form-control' , 'placeholder' => ''])}}
        </div>  

        <div class = "form-group">
            {{ Form::label('age','Age')}}
            {{ Form::number('age','', ['class' => 'form-control' , 'placeholder' => ''])}}
        </div>  

        <div class = "form-group">
            {{ Form::label('marks','Marks')}}
            {{ Form::number('marks','', ['class' => 'form-control' , 'placeholder' => ''])}}
        </div>  

        <div class = "form-group">
            {{ Form::label('description','Description')}}
            {{ Form::textarea('description','', ['class' => 'form-control' , 'placeholder' => ''])}}
        </div>  

        {{ Form::submit('Submit' , ['class' => 'btn btn-primary'])}}

    {!! Form::close() !!}
</div>
@endsection

PagesController中的check()方法是这样的:

    public function check(Request $request){
        $this->validate($request, [
            'country' => 'required',
            'age' => 'required',
            'marks' => 'required',
            'description' => 'required'

            ]);
        return 123;

   }

为什么会报如下错误:

(2/2) 错误异常
Action App\Http\Controllers\PagesController@check 未定义。 (查看:C:\wamp64\bin\apache\apache2.4.23\htdocs\website\resources\views\profiles.blade.php)

这是整个PagesController控制器:

class PagesController extends Controller
{
    public function home() {
        return view('welcome');
    }

    public function about() {
        $title = 'This is the about page';
        return view('about')->with('title',$title);
    }

    public function show() {
        $yomads = person::all();
        return view('show')->with('yomads',$yomads);
    }

    public function profiles(){
       return view('profiles');
    }

    public function check(Request $request){
        $this->validate($request, [
            'country' => 'required',
            'age' => 'required',
            'marks' => 'required',
            'description' => 'required'

            ]);
        return 123;

   }
}

【问题讨论】:

  • 你能粘贴整个 PagesController 吗?
  • 我已经添加了整个 pagescontroller
  • 它在什么命名空间下?一切看起来都很好,我唯一能想到的就是命名空间错误
  • 正如@Ian 所说,一切看起来都不错。也许尝试运行composer dump-autoload,以防文件以某种方式被缓存。
  • 你在routes/web.php中添加路由条目了吗?

标签: laravel


【解决方案1】:

错误很可能与app/Http/routes.php 中的路由(或缺少路由)有关 - 检查它是否在此处正确定义。

此外,创建自定义请求类是一种很好的做法。看看Form Request Validation

这些可以用工匠生成:

php artisan make:request Profile

然后像使用标准请求一样使用它:

public function check(ProfileRequest $request) {
[...]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多