Php 向Laravel样板用户模型添加新字段
我正在尝试向laravel锅炉用户模型添加新字段。 在fresh Laravel中,它有Php 向Laravel样板用户模型添加新字段,php,mysql,laravel,post,Php,Mysql,Laravel,Post,我正在尝试向laravel锅炉用户模型添加新字段。 在fresh Laravel中,它有App/User.php,我可以使用$filleble添加字段 在样板文件中,它有app/Models/Access/User/User.php,它有 受保护的idprotected$guarded=['id']。 还有密码,记住作为$hiddenprotected$hidden=['password','memored_-token'] 因此,其他所有内容都是默认可填充的 但当我试图向用户模型添加新字段时,
App/User.php
,我可以使用$filleble添加字段
在样板文件中,它有app/Models/Access/User/User.php
,它有
受保护的idprotected$guarded=['id']代码>。
还有密码,记住作为$hiddenprotected$hidden=['password','memored_-token']代码>
因此,其他所有内容都是默认可填充的
但当我试图向用户模型添加新字段时,它并没有添加到数据库表中
表中已包含名为summy
的字段
我已将summery字段添加到register.blade.php中,并尝试检查它是否通过
添加返回($request)
到App\Service\Access\Trait\RegistersUsers.php
public function register(RegisterRequest $request)
{
if (config('access.users.confirm_email')) {
$user = $this->user->create($request->all());
event(new UserRegistered($user));
dd ($request);
// return redirect()->route('frontend.index')->withFlashSuccess(trans('exceptions.frontend.auth.confirmation.created_confirm'));
} else {
auth()->login($this->user->create($request->all()));
event(new UserRegistered(access()->user()));
return redirect($this->redirectPath());
}
}
<?php
namespace App\Models\Access\User;
use App\Models\Access\User\Traits\UserAccess;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Models\Access\User\Traits\Attribute\UserAttribute;
use App\Models\Access\User\Traits\Relationship\UserRelationship;
/**
* Class User
* @package App\Models\Access\User
*/
class User extends Authenticatable
{
use SoftDeletes, UserAccess, UserAttribute, UserRelationship;
/**
* The attributes that are not mass assignable.
*
* @var array
*/
protected $guarded = ['id'];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
/**
* @var array
*/
protected $dates = ['deleted_at'];
}
<?php
namespace App\Events\Frontend\Auth;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
/**
* Class UserRegistered
* @package App\Events\Frontend\Auth
*/
class UserRegistered extends Event
{
use SerializesModels;
/**
* @var $user
*/
public $user;
/**
* @param $user
*/
public function __construct($user)
{
$this->user = $user;
}
}
它回来了
POST /register HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.8 Cache-Control: max-age=0 Connection: keep-alive Content-Length: 170 Content-Type: application/x-www-form-urlencoded Cookie: XSRF-TOKEN={{removed}} Host: localhost:8000 Origin: http://localhost:8000 Referer: http://localhost:8000/ Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36 _token=jwLZC59098AaUGFp4pYwv0m3sdEX91BhPvQn43Xq&name=test+user&password=testpass&password_confirmation=testpass&email=testmail%40test.com&summery=test+summery&terms=terms
但not表未正确更新
我的其他表输入和数据检索都很好。只有这个型号有问题
如果你需要更多信息来帮助我,请告诉我
编辑:
app/Models/Access/User/User.php的源代码
public function register(RegisterRequest $request)
{
if (config('access.users.confirm_email')) {
$user = $this->user->create($request->all());
event(new UserRegistered($user));
dd ($request);
// return redirect()->route('frontend.index')->withFlashSuccess(trans('exceptions.frontend.auth.confirmation.created_confirm'));
} else {
auth()->login($this->user->create($request->all()));
event(new UserRegistered(access()->user()));
return redirect($this->redirectPath());
}
}
<?php
namespace App\Models\Access\User;
use App\Models\Access\User\Traits\UserAccess;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Models\Access\User\Traits\Attribute\UserAttribute;
use App\Models\Access\User\Traits\Relationship\UserRelationship;
/**
* Class User
* @package App\Models\Access\User
*/
class User extends Authenticatable
{
use SoftDeletes, UserAccess, UserAttribute, UserRelationship;
/**
* The attributes that are not mass assignable.
*
* @var array
*/
protected $guarded = ['id'];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
/**
* @var array
*/
protected $dates = ['deleted_at'];
}
<?php
namespace App\Events\Frontend\Auth;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
/**
* Class UserRegistered
* @package App\Events\Frontend\Auth
*/
class UserRegistered extends Event
{
use SerializesModels;
/**
* @var $user
*/
public $user;
/**
* @param $user
*/
public function __construct($user)
{
$this->user = $user;
}
}
编辑3:sourcefromApp\Events\Auth\UserRegistered.php
public function register(RegisterRequest $request)
{
if (config('access.users.confirm_email')) {
$user = $this->user->create($request->all());
event(new UserRegistered($user));
dd ($request);
// return redirect()->route('frontend.index')->withFlashSuccess(trans('exceptions.frontend.auth.confirmation.created_confirm'));
} else {
auth()->login($this->user->create($request->all()));
event(new UserRegistered(access()->user()));
return redirect($this->redirectPath());
}
}
<?php
namespace App\Models\Access\User;
use App\Models\Access\User\Traits\UserAccess;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Models\Access\User\Traits\Attribute\UserAttribute;
use App\Models\Access\User\Traits\Relationship\UserRelationship;
/**
* Class User
* @package App\Models\Access\User
*/
class User extends Authenticatable
{
use SoftDeletes, UserAccess, UserAttribute, UserRelationship;
/**
* The attributes that are not mass assignable.
*
* @var array
*/
protected $guarded = ['id'];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
/**
* @var array
*/
protected $dates = ['deleted_at'];
}
<?php
namespace App\Events\Frontend\Auth;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
/**
* Class UserRegistered
* @package App\Events\Frontend\Auth
*/
class UserRegistered extends Event
{
use SerializesModels;
/**
* @var $user
*/
public $user;
/**
* @param $user
*/
public function __construct($user)
{
$this->user = $user;
}
}
这是我找到的解决方案,
转到app\repositories\frontend\access\user\EloquentUserRepository.php
public function register(RegisterRequest $request)
{
if (config('access.users.confirm_email')) {
$user = $this->user->create($request->all());
event(new UserRegistered($user));
dd ($request);
// return redirect()->route('frontend.index')->withFlashSuccess(trans('exceptions.frontend.auth.confirmation.created_confirm'));
} else {
auth()->login($this->user->create($request->all()));
event(new UserRegistered(access()->user()));
return redirect($this->redirectPath());
}
}
<?php
namespace App\Models\Access\User;
use App\Models\Access\User\Traits\UserAccess;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Models\Access\User\Traits\Attribute\UserAttribute;
use App\Models\Access\User\Traits\Relationship\UserRelationship;
/**
* Class User
* @package App\Models\Access\User
*/
class User extends Authenticatable
{
use SoftDeletes, UserAccess, UserAttribute, UserRelationship;
/**
* The attributes that are not mass assignable.
*
* @var array
*/
protected $guarded = ['id'];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
/**
* @var array
*/
protected $dates = ['deleted_at'];
}
<?php
namespace App\Events\Frontend\Auth;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
/**
* Class UserRegistered
* @package App\Events\Frontend\Auth
*/
class UserRegistered extends Event
{
use SerializesModels;
/**
* @var $user
*/
public $user;
/**
* @param $user
*/
public function __construct($user)
{
$this->user = $user;
}
}
你会发现
public function create(array $data, $provider = false)
{
if ($provider) {
$user = User::create([
'summery' => $data['summery'], // add new field here
'name' => $data['name'],
'email' => $data['email'],
'password' => null,
'confirmation_code' => md5(uniqid(mt_rand(), true)),
'confirmed' => 1,
'status' => 1,
]);
} else {
$user = User::create([
'summery' => $data['summery'], // add new field here
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'confirmation_code' => md5(uniqid(mt_rand(), true)),
'confirmed' => config('access.users.confirm_email') ? 0 : 1,
'status' => 1,
]);
}
}
检查我如何将新字段“Summy”添加到函数中。添加新字段后,oost请求将向数据库发送新字段数据 使用如下创建方法时,为摘要添加一个受保护的字段
class User extends Authenticatable
{
use SoftDeletes, UserAccess, UserAttribute, UserRelationship;
* The attributes that are mass assignable.
*
* @var array
protected $fillable = ['sumary', 'and other variables'];
/**
* The attributes that are not mass assignable.
*
* @var array
*/
protected $guarded = ['id'];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
/**
* @var array
*/
protected $dates = ['deleted_at'];
}
显示app/Models/Access/User/User.php
source.@Pyton用源代码更新了线程。:)创建后显示dd($user)
。以及$this->user
中的内容。这是什么:App\Models\Access\User\Traits\Attribute\UserAttribute
?@Pyton我添加了dd($requst);Summy,我不确定如何将所有内容发布到这里,我认为$this->user
来自App\Events\Auth\userregisted.php
这些会有帮助吗?还有一件事:dump($request->all())代码>添加$fillable不起作用,我想这是因为EloquentUserRepository.php上的create函数只接受某些输入扫描您是否将代码粘贴到EloquentUserRepository.php中?请检查所选答案,来自样板文件github页面的blomdahldaniel也确认应该从中添加它。