【问题标题】:Validation not working in laravel 5.5验证在 laravel 5.5 中不起作用
【发布时间】:2018-05-26 11:36:50
【问题描述】:

我安装了一个新的 Laravel 5.5 应用并在 test.blade.php 视图中创建了一个表单:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
        <form method="POST" action={{ route('contact') }}>
            {{ csrf_field() }}
            <input type="text" name="title">
            <input type="text" name="body">
            <input type="submit"  value="click">
        </form>
</body>
</html>

并创建了我的PageController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class Pagecontroller extends Controller
{
   public function index(Request $request){
            $this->validate($request,[
                'title' => 'required',
                'body' => 'required',
            ]);

            return View('View');
   }
}

并在web.php 添加我的路线:

<?php
Route::get('/', function () {
    return view('welcome');
});
Route::get('/test',function(){
    return View('test');
});
Route::post('/contact',['uses'=>'PageController@index','as'=>'contact']);

我的问题是,当我提交带有或不带有数据的表单时,什么都没有发生,页面只是重新加载,当我删除验证代码时:

 $this->validate($request,[
                    'title' => 'required',
                    'body' => 'required',
                ]);

它返回的请求我无法理解是什么问题,因为我之前测试过它并且它在 Laravel 5.4 中工作。谁能帮帮我?

【问题讨论】:

  • 什么是“在 5.4 中工作”?
  • 你的 index 函数基本上什么都不做(它正在验证,但之后什么都不做),返回 $request 是很奇怪的。您想用这段代码完成什么?
  • (验证)工作,当输入为空时返回错误
  • @mohsen.MY ...我们不想要测试,我们想要真正的问题....您遇到问题并尝试举例说明可能已经失去了实际问题在此过程中,因为您首先不知道问题出在哪里
  • 您究竟对失败的验证有何期望?除此之外,您的test.blade.php 指的是View.blade.php。

标签: laravel validation laravel-5.5


【解决方案1】:

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;

    class Pagecontroller extends Controller
    {
       public function index(Request $request){
        $request->validate([
            'title' => 'required',
            'body' => 'required',
                ]);

                return View('View');
               }
            }

你的视图代码应该是:

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    @if ($errors->any())
<div class="alert alert-danger">
    <ul>
        @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
</div>
    @endif
            <form method="POST" action={{ route('contact') }}>
                {{ csrf_field() }}
                <input type="text" name="title">
                <input type="text" name="body">
                <input type="submit"  value="click">
    </form>
    </body>
    </html>

【讨论】:

    猜你喜欢
    • 2018-06-03
    • 2018-06-23
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多