Laravel не зарегистрирует пользователя в таблице пользователей - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь работать над проектом Laravel PHP, и я новичок в этой среде.Первый шаг, который я должен был сделать - это создать регистрационную форму. Однако, когда я нажимаю кнопку «Отправить», ошибка не появляется, и в моей таблице пользователей ничего не регистрируется.

Ниже приведен код моего проекта:

Функции переноса и отключения таблицы моих пользователей

 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

Важные функции My RegisterController

<?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 заполняется

protected $ fillable = ['name', 'sexe', 'age', 'email',' пароль ',];

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 artisan make auth, сгенерировал файлы, сделал .env файл, соответствующий моей базе данных MySQL с именем пользователя и паролем, даже проверил конфигурацию PhpMyAdmin, но все тщетно.

После 4 дней поискана сайтах Google я не могу понять, где я ошибаюсь.

PS: Еще одна вещь, которая может ошибаться, это такой код:

@section
@endsection

никогдапринимается и просто отображается как обычный текст в моем браузере.

Большое спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Вы получаете ошибку?Кроме того, не могли бы вы, пожалуйста, следующую строку в верхней части формы, чтобы увидеть, есть ли какие-либо ошибки проверки или нет.После этого попробуйте отправить форму и посмотрите, есть ли какая-либо ошибка!

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

И удалите действие из формы тегами.Используйте: @csrf

или

{{csrf_field()}}

вместо

<meta name="csrf-token" content="{{ csrf_token() }}">

0 голосов
/ 03 февраля 2019

Проверьте расположение журналов Laravel: хранилище / журналы, вы получите ошибки.

Я заметил, что вы используете $ table-> boolean ('sexe'), и при проверке вы даете строку boolen должно быть 0/ 1

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

также измените свою HTML-форму на 0,1 в настоящее время вы используете мужской, женский

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...