php - Laravel 5.2 - 未显示验证错误

标签 php validation laravel laravel-blade

<分区>

我正在尝试在 Laravel 5.2 中验证登录/注册系统。

我正在使用 welcome.blade.php 作为索引页面,其中包含两种用于注册和登录的表单

我的 UserController.php 是这样设置的:

namespace authme\Http\Controllers;

use Illuminate\Http\Request;
use authme\User;
use Illuminate\Support\Facades\Auth;

class UserController extends Controller
{
    public function getDashboard()
    {
        return view('dashboard');
    }
    public function doSignUp(Request $request)
    {
        $this->validate($request, [
            'email' => 'required|email|unique:users',
            'first_name' => 'required|max:120',
            'password' => 'required|min:6'
        ]);

        $email = $request['email'];
        $password = bcrypt($request['password']);
        $first_name = $request['first_name'];
        $last_name = $request['last_name'];
        $location = $request['location'];
        $phone = $request['phone'];

        $user = new User();
        $user->email = $email;
        $user->password = $password;
        $user->firstname = $first_name;
        $user->lastname = $last_name;
        $user->location = $location;
        $user->phone = $phone;

        $user->save();

        Auth::login($user);

        return redirect()->route('dashboard');

    }

    public function doSignIn(Request $request)
    {
        $this->validate($request, [
            'email' => 'required',
            'password' => 'required'
        ]);

        if(Auth::attempt(['email' => $request['email'], 'password' => $request['password']])){
            return redirect()->route('dashboard');
        }
        return redirect()->back();
    }
}

为了在我的 View 文件 (welcome.blade.php) 中显示注册/登录期间的错误,我包括:

@if(count($errors) > 0)
    <div class="row">
            <div class="alert alert-danger">
                <ul>
                    @foreach($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
    </div>
@endif

路由设置如下:

Route::group(['middleware' => ['web']], function() {

Route::get('/', function () {
    return view('welcome');
});

Route::post('/signup', [
    'uses'  => 'UserController@doSignUp',
    'as' => 'signup'
]);

Route::post('/signin', [
    'uses'  => 'UserController@doSignIn',
    'as' => 'signin'
]);

Route::get('/dashboard', [
    'uses' => 'UserController@getDashboard',
    'as' => 'dashboard'
]);
});

当输入正确的详细信息时,表格可以正常工作。但是,当我输入不正确的数据时:

  • 当我尝试提交空白表单时,它只是重定向回原始页面,但没有显示任何错误
  • 当我尝试输入一个已在使用的电子邮件时,它再次重定向回原始页面,但没有显示任何错误

但是,我在我的代码中找不到任何可能的语法错误。有没有逻辑错误?

附言:

  1. 我没有编辑或修改 App\Exceptions\Handler
  2. 问题的答案都没有同时问 herehere解决了我的问题

最佳答案

如果您使用高于或等于 5.2.25 的 Laravel 版本,您不再需要将路由放在 web 中间件中。它现在自动应用。

将您的路由放在 routes.php 中的 web 中间件中实际上会导致问题。

解释 here .

关于php - Laravel 5.2 - 未显示验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634155/

相关文章:

php - 如何使用 str_replace() 函数从 php 中的 excel 文件中替换占位符?

php - JavaScript 不工作,没有错误

CodeIgniter-表单验证和文件上传数据

c# - MVVM - 验证真的需要这么麻烦吗?

javascript - 使用 Vue.js 构建评论系统时 Laravel 5.8 Vue is not Defined 错误

php - mysql更新查询不适用于通过php上传图片

php - SQL 语法错误 - ' ' ', '', now())'

javascript - 在 AngularJS 中禁用不需要的验证(条件验证)

php - Laravel: SQLSTATE HY000 2002 由于目标机器主动拒绝,无法建立连接

php - ios通知无法在laravel中设置私钥文件