Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 向Laravel样板用户模型添加新字段_Php_Mysql_Laravel_Post - Fatal编程技术网

Php 向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'] 因此,其他所有内容都是默认可填充的 但当我试图向用户模型添加新字段时,

我正在尝试向laravel锅炉用户模型添加新字段。 在fresh Laravel中,它有
App/User.php
,我可以使用$filleble添加字段

在样板文件中,它有
app/Models/Access/User/User.php
,它有 受保护的id
protected$guarded=['id']。
还有密码,记住作为$hidden
protected$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:sourcefrom
App\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也确认应该从中添加它。