当前位置: 首页 > 知识库问答 >
问题:

Laravel不会在用户表中注册用户

臧梓
2023-03-14

我正在尝试一个LaravelPHP项目,因为我是这个框架的新手。我要做的第一步是建立一个登记表。但是,当我单击Submit按钮时,没有给出任何错误,并且在我的users表中没有注册任何内容。

以下是到目前为止我的项目的代码:

我的用户迁移表上下功能

 public function up()
      {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->boolean('sexe');
            $table->integer('age');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }

I added to the original two fields which are : "sexe a boolean F/M" and age

我的注册表控制器具有重要功能

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
use Mail;

class RegisterController extends Controller
{

    use RegistersUsers;


    protected $redirectTo = '/register';

    public function __construct()
    {
        $this->middleware('guest');
    }


    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required', 'string', 'max:255',
            'sexe'=> 'required|in:male,female',
            'age' => 'required|integer|max:100',
            'email' => 'required', 'string', 'email', 'max:255', 'unique:users',
            'password' => 'required', 'string', 'min:5', 'confirmed',
        ]);
    }

    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'sexe' => $data['sexe'],
            'age' => $data['age'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);

    }


  /**
     * Override default register method from RegistersUsers trait
     *
     * @param array $request
     * @return redirect to $redirectTo
     */
    public function register(Request $request)
    {
        $this->validator($request->all())->validate();

        //add activation_key to the $request array
        $activation_key = $this->getToken();
        $request->request->add(['activation_key' => $activation_key]);

        $user = $this->create($request->all());

        //$this->guard()->login($user);

        //write a code for send email to a user with activation link
        $data = array('name' => $request['name'], 'email' => $request['email'],  'activation_link' => url('/activation/' . $activation_key));

        Mail::send('emails.mail', $data, function($message) use ($data) {
            $message->to($data['email'])
                    ->subject('Activate Your Account');
            $message->from('s.sajid@artisansweb.net');
        });

        return $this->registered($request, $user)
                        ?: redirect($this->redirectPath())->with('success', 'We have sent an activation link on your email id. Please verify your account.');
                        print_r($request->input());
    }

}

我的路线

Route::auth();
Route::get('/home', 'HomeController@index');

Auth::routes();

Route::get('/register', 'RegisterController@create');
Route::post('/register', 'RegisterController@register');
Route::get('/', function () {
    return view('welcome');
});

我的User.php模型可填充

受保护的$fillable=['姓名','性别','年龄','电子邮件','密码',];

protected $hidden = [
    'password', 'remember_token',
];

public function setPasswordAttribute($password)
{
    $this->attributes['password'] = bcrypt($password);
}

}

我的刀片文件寄存器部分(register.blade.php)

 <body>


                                    <form method="POST" role="form" action="//IJJI/resources/views/chat.blade.php">
                                    <meta name="csrf-token" content="{{ csrf_token() }}">

                                                <input id="name" name="name"type="text" class="form-control" placeholder="Entrez ici votre Pseudo *" value="" />

                                                    <label class="radio inline"> 
                                                        <input id="homme" type="radio" name="sexe" value="homme" checked>
                                                        <span> Homme </span> 
                                                    </label>
                                                    <label class="radio inline"> 
                                                        <input id="femme" type="radio" name="sexe" value="femme">
                                                        <span>Femme </span> 
                                                    </label>

                                                <input id="age" name="age" type="integer" class="form-control" placeholder="Saisissez votre age *" value="" />
                                                <input id="Email" name="email" type="email" class="form-control" placeholder="Saisissez votre Email *" value="" />

                                                <input id="password" name="password" type="password" class="form-control" placeholder="Entrez votre Mot de Passe *" value="" />

                                                <input id="confirmpassword" name="confirmpassword" type="password" class="form-control" placeholder="Confrimez votre Mot de Passe *" value="" />

                                            <button type="submit" class="btnRegister">
                                                Je deviens membre Gratuitement
                                            </button>

                                    </form>

            </body>

我已经做了PHP工匠制作auth生成的文件,使. env文件足以我的MySQL数据库与用户名和密码,甚至检查了PhpMyAdmin配置,但都是徒劳的。

在谷歌网站上搜索了4天之后,我想不出我错在哪里了。

另一个可能是错误的是这样的代码:

@section
@endsection

从未被接受,只是在我的浏览器上像普通文本一样显示。

非常感谢你的帮助

共有2个答案

斜高翰
2023-03-14

你有错误吗?此外,请您在表格顶部的下面一行查看是否存在验证错误。之后,尝试提交表单,看看是否有任何错误!

@if(count($errors) > 0)
    <div style="color:red">
        @foreach ($errors->all() as $message)
            <ul>
                <li>{{$message}}</li>
            </ul>
        @endforeach
    </div>
@endif

并从表单标记中删除操作表单。使用:@csrf

{{csrf_field()}}

而不是

<代码>

喻珂
2023-03-14

检查您的laravel日志位置:存储/日志,你会得到错误。

我注意到您正在使用$table-

'sexe'=> 'required:in:true,false',

也将你的html表单更改为0,1当前你使用的是男性,女性

 类似资料:
  • 我正在使用Laravel。我想禁用新用户的注册,但我需要登录才能工作。 如何禁用注册表/路由/控制器?

  • 我用laravel 5.6 我想为新用户禁用注册,当然登录表单必须有效 我看到下面的问题: 但我没有找到答案‍‍<代码>showRegistrationForm()函数位于以下路径:

  • 我试图为我的网络应用程序建立一个登录系统,但我无法让Passport工作。该应用程序是作为REST API构建的,因此用户应该能够使用电子邮件和密码注册,之后他们应该能够使用这些凭据登录(所以我认为他们需要在登录凭据时从Passport接收访问令牌是正确的)。 我想我可以只向“注册”路径发送一个JSON帖子来注册一个新用户,然后向“登录”路径发送一个帖子来将访问令牌返回到客户端,但据我所知,没有这

  • 我正在尝试创建一个应用程序,我必须注册用户,我正在使用Firebase进行注册,一旦我将所有数据放入register,然后进入Firebase数据库,我发现我自己并不是在测试模式下创建数据库的注册用户。你能解释一下我可能做错了什么吗? 注册用户代码: 我正在使用实时数据库 规则Firebase:

  • 我使用laravel 5.2默认用户注册和登录表单。我的要求是创建两种类型的用户。它不是一种用户和管理员。但其两种类型的用户在网站user1和user2中具有不同的注册表单字段。因此,我已经复制了register.blad.php并创建了一个函数在authControler。为了区分数据库中的两个表单值,我使用了一个名为user_type的字段。user_type是两个注册表单中的隐藏字段。这是我

  • 我不知道这是否可行。我创建了一个Laravel 6项目并添加了auth。现在我希望程序在注册过程中生成用户名。用户没有任何输入字段来写入其用户名。程序应该自动生成。例如,用户名是“test”,用户名可以是test12345678。基本上,它将是用户名的8个随机数。这是登记簿。刀身php 这是registerController。php: 我还在用户表中添加了一个名为“用户名”的新列