2016-02-21 1 views
1

Я работаю над проектом по моей помощью Laravel 5.2Базовая форма проверки и вставить в базу данных

Я в проверке регистрационной формы и вставить в процессе базы данных.

Маршрут:

Route::post('/register', '[email protected]'); 

UserController:

<?php 

namespace App\Http\Controllers; 

use Crypt; 
use App\User; 
use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 

class UserController extends Controller 
{ 
    public function create(CreateUserRequest $request) 
    { 
     $user = new User; 
     $user->all() = User::all(); 
     $user->password = Crypt::encrypt($user->password); 
     $user->save(); 
    } 
} 

CreateUserRequest:

<?php 

namespace App\Http\Requests; 

use App\Http\Requests\Request; 

class CreateUserRequest extends Request 
{ 
    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
     'username' => 'required|regex:[a-zA-Z0-9]+|between:3,12|unique:users', 
     'email' => 'required|email|unique:users', 
     'password' => 'required|regex:(?=.*[A-Z])(?=.*\d).+|min:6|confirmed', 
     'password_confirmation' => 'required', 
     ]; 
    } 
} 

Когда я представить мою заполненную форму, она не будет вставить новый пользователя в базе данных , Я знаю, что мне нужно сделать переадресацию в конце, но я просто пытаюсь вставить нового пользователя в таблицу users.

Я что-то не так? Я что-то упускаю? Заранее спасибо!

EDIT: Моя форма регистрации на случай, если есть проблема.

    <form method="POST" action="/register">      
        <div class="form-group"> 
         <label for="username">Nom d'utilisateur</label> 
         <div class="input-group"> 
          <div class="input-group-addon"><i class="fa fw fa-user"></i></div> 
          <input type="text" class="form-control" name="username" placeholder="Nom d'utilisateur" required 
                                minlength="3" 
                                maxlength="12" 
                                data-validation-regex-regex="[a-zA-Z0-9]+" 
                                data-validation-regex-message="Votre nom d'utilisateur doit comporter entre 3 et 12 caractères alphanumériques." 
                                data-validation-minlength-message="Votre nom d'utilisateur doit comporter entre 3 et 12 caractères alphanumériques."> 
         </div> 
         <span id="helpBlock" class="help-block">Ce nom d'utilisateur sert à vous identifier et sera visible sur le forum. Ce n'est pas votre nom en jeu. Votre nom doit contenir entre 3 et 12 caractères alphanumériques.</span> 
        </div> 
        <div class="form-group"> 
         <label for="username">Courriel</label> 
         <div class="input-group"> 
          <div class="input-group-addon"><i class="fa fw fa-envelope"></i></div> 
          <input type="email" class="form-control" name="email" placeholder="[email protected]" required 
                                data-validation-email-message="Votre adresse courriel doit être valide afin de compléter votre inscription."> 
         </div> 
         <span id="helpBlock" class="help-block">Votre adresse courriel doit être valide afin de compléter votre inscription.</span> 
        </div> 
        <div class="form-group"> 
         <label for="username">Mot de passe</label> 
         <div class="input-group"> 
          <div class="input-group-addon"><i class="fa fw fa-lock"></i></div> 
          <input type="password" class="form-control" name="password" placeholder="Mot de passe" required 
                                minlength="6" 
                                data-validation-regex-regex="(?=.*[A-Z])(?=.*\d).+" 
                                data-validation-minlength-message="Votre mot de passe doit comporter au moins 6 caractères alphanumériques dont minimum une lettre majuscule et un chiffre." 
                                data-validation-regex-message="Votre mot de passe doit comporter au moins 6 caractères alphanumériques dont minimum une lettre majuscule et un chiffre."> 
         </div> 
         <span id="helpBlock" class="help-block">Votre mot de passe doit comporter au moins 6 caractères alphanumériques dont minimum une lettre majuscule et un chiffre.</span> 
        </div> 
        <div class="form-group"> 
         <label for="username">Confirmation du mot de passe</label> 
         <div class="input-group"> 
          <div class="input-group-addon"><i class="fa fw fa-lock"></i></div> 
          <input type="password" class="form-control" name="password_confirmation" placeholder="Mot de passe" required 
                                data-validation-match-match="password"> 
         </div> 
        </div> 
        <div class="g-recaptcha" data-sitekey="6LcrSRgTAAAAAJ5RbvAlBMZ20OPrI_UYjtLFjqic"></div> 
        <div class="checkbox"> 
         <label> 
          <input type="checkbox" name="eula" required> J'ai lu et j'accepte les <a>conditions générales d'utilisation</a>. 
         </label> 
         <button type="submit" class="btn btn-primary pull-right"><i class="fa fw fa-user-plus"></i> S'inscrire</button> 
        </div> 
       </form> 

ответ

0

Попробуйте это:

public function create(CreateUserRequest $request) 
{ 
    $data = $request->all(); 
    $user = User::create([ 
     'username' => $data['username'],    
     'email' => $data['email'], 
     //Here you put all your user fields like lastname and username above 
     ...      
     'password' => Crypt::encrypt($data['password']), 
     ...         
     ]);   
} 
+0

Спасибо, я попробую это прямо сейчас. Однако, разве не должно быть спасение() или что-то еще? –

+0

То же самое, но этот симпатичный :) – BKF

+0

Дайте мне знать, если это вам помогло :) – BKF

0

Пожалуйста, проверьте этот doc, который о том, как вставить данные в базу данных.

public function create(CreateUserRequest $request) 
    { 
     $user = new User; 
     $user->all() = User::all(); 
     $user->password = Crypt::encrypt($user->password); 
     $user->save(); 
    } 

В приведенной выше функции, что вы сделали это,

$user = new User; 

сделает новую модель пользовательского объекта

$user->all() = User::all(); 

будет вызывать пользовательскую модель весь метод для извлечения данных из базы данных , И

$user->password = Crypt::encrypt($user->password); 

обновит поле пароля вашей таблицы полем пароля вашего стола.

В прошлом

$user->save(); 

будет пытаться сохранить данные с обновленными значениями. Но вы пытаетесь вставить нового пользователя в db правильно? Итак, вы можете просто сделать что-то вроде этого:

public function create(CreateUserRequest $request){ 
$user = new User; 
    $user->username = $request->username; 
     $user->password = Crypt::encrypt($request->password'); 
     $user->save(); 

     return Redirect::back(); 
    } 

Надеюсь, это поможет.

+0

Я пытался как ваше решение и один БКФ в. Никто не работает, в другом месте должна быть другая проблема. Вы можете прочитать комментарии ниже своего ответа. Благодаря! –

+0

Ваша проблема решена сейчас? – Drudge

Смежные вопросы