我正在使用Laravel 5.2自行开发一个项目
我在注册表单验证并插入到数据库进程。
路线:
Route::post('/register', 'UserController@create');
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表中插入新用户。
我做错了吗?我错过了什么吗?提前谢谢!
编辑:如果那里有问题,请提供我的注册表。 <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="example@domain.com" 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 :(得分: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();
}
希望这会有所帮助。
答案 1 :(得分: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']),
...
]);
}