我试图修改我的寄存器(Laravel 5.1内置寄存器),这样我就可以将记录插入到另一个表中。
我的注册:
/\b(?:(?:\d{1,2}|1\d{2}|2(?:[0-4]\d|5[0-5]))\.){3}(?:\d{1,2}|1\d{2}|2(?:[0-4]\d|5[0-5]))\b/g
/^(?:(?:\d{1,2}|1\d{2}|2(?:[0-4]\d|5[0-5]))\.){3}(?:\d{1,2}|1\d{2}|2(?:[0-4]\d|5[0-5]))$/
我的模特:
<?php
namespace Cussion\Http\Controllers\Auth;
use Cussion\User;
use Request;
use Validator;
use Redirect;
use Cussion\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
/*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
private $redirectTo = '/dashboard';
private $maxLoginAttempts = 3;
/**
* Create a new authentication controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
$messages = [
'firstname.required' => '<script>toastr["error"]("Het invullen van het veld is vereist!.", "Registreren mislukt")</script>',
'firstname.max' => '<script>toastr["error"]("U mag maar maximaal :max karakters ingeven.", "Registreren mislukt")</script>',
'lastname.required' => '<script>toastr["error"]("Het invullen van het veld is vereist!.", "Registreren mislukt")</script>',
'lastname.max' => '<script>toastr["error"]("U mag maar maximaal :max karakters ingeven.", "Registreren mislukt")</script>',
'email.required' => '<script>toastr["error"]("Het invullen van het veld is vereist!", "Registreren mislukt")</script>',
'email.email' => '<script>toastr["error"]("U moet een bestaand e-mail adres opgeven!", "Registreren mislukt")</script>',
'email.max' => '<script>toastr["error"]("U mag maar maximaal :max karakters ingeven.", "Registreren mislukt")</script>',
'email.unique' => '<script>toastr["error"]("Het opgegeven e-mail adres bestaat al.", "Registreren mislukt")</script>',
'password.require' => '<script>toastr["error"]("Het invullen van het veld is vereist!", "Registreren mislukt")</script>',
'password.min' => '<script>toastr["error"]("U moet minimaal :min karakters gebruiken voor uw wachtwoord.", "Registreren mislukt")</script>',
'password2.require' => '<script>toastr["error"]("Het invullen van het veld is vereist!", "Registreren mislukt")</script>',
'password2.same' => '<script>toastr["error"]("De twee wachtwoorden komen niet overeen.", "Registreren mislukt")</script>',
];
$rules = [
'firstname' => 'required|max:255',
'lastname' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:4',
'password2' => 'required|same:password',
];
return Validator::make($data, $rules, $messages);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
if (User::where('slug', '=', strtolower($data['firstname']).'.'.strtolower($data['lastname']))->exists()) {
return User::create([
'firstname' => strtolower(htmlspecialchars($data['firstname'])),
'lastname' => strtolower(htmlspecialchars($data['lastname'])),
'slug' => strtolower(htmlspecialchars($data['firstname'])).'.'.strtolower(htmlspecialchars($data['lastname'])).'.'.time(),
'email' => strtolower($data['email']),
'password' => bcrypt($data['password']),
'ip_reg' => Request::ip(),
]);
}else{
$user = new User;
$user->firstname = strtolower($data['firstname']);
$user->lastname = strtolower($data['lastname']);
$user->slug = strtolower($data['firstname']).'.'.strtolower($data['lastname']);
$user->email = strtolower($data['email']);
$user->password = bcrypt($data['password']);
$user->ip_reg = Request::ip();
$user->userImages()->create(['image' => 'empty-avatar.png']);
$user->save();
Session::flash('success', '<script>toastr["success"]("Uw profiel is nu up to date.", "Profiel succesvol bijgewerkt")</script>');
return Redirect::to('dashboard');
}
}
}
User.php
<?php
namespace Cussion;
use Illuminate\Database\Eloquent\Model;
class UserImage extends Model
{
protected $table = 'users_images';
protected $fillable = ['user_id','image'];
}
在我的控制器中,我有2个单独的方法来存储。我不知道有人使用......请帮助我。
所以在这里我检查是否存在用户slug,如果存在,则需要添加time();我实际上想要添加1,如果它是第一个和2如果第二,依此类推。就像你在facebook上一样,也许如果有人能解决这个问题,那就太棒了。
我想在<?php
namespace Cussion;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Bican\Roles\Traits\HasRoleAndPermission;
use Bican\Roles\Contracts\HasRoleAndPermission as HasRoleAndPermissionContract;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract, HasRoleAndPermissionContract
{
use Authenticatable, CanResetPassword, HasRoleAndPermission;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['firstname', 'lastname', 'email', 'password', 'ip_reg', 'slug'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
public static function userImages()
{
return $this->hasMany('Cussion\UserImage');
//Laravel automatically snake case your model
//so it will assume the foreign key is named user_id
}
}
中使用刚注册用户的users_images
插入新记录。
这是该表具有的值:
user_id
我实际上只是希望填写user_id和timestamps,因为其余部分将自动完成。
如何使用id, user_id, image, created_at, updated_at
?
答案 0 :(得分:1)
为users_images创建一个模型(顺便说一句,这是一个支点还是只有一对多的关系?)
namespace App;
use Illuminate\Database\Eloquent\Model;
class UserImage extends model{
protected $table='users_images';
protected $fillable = ['user_id','image'];
}
在您的用户模型中添加
public function userImages()
{
return $this->hasMany('App\UserImage');
//Laravel automatically snake case your model
//so it will assume the foreign key is named user_id
}
现在您可以使用这种关系来创建新模型:
$user->userImages()->create(['image'=>whateves]);