为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 上注册后如何插入到另一个表中?

在 Laravel 上注册后如何插入到另一个表中?

PHP
慕无忌1623718 2021-10-15 09:44:18
所以,我有一个 Laravel 网络并有一些表,其中两个是users和user_data。 user_data有一个user_id引用idon的外键users。users具有用户名、电子邮件、密码等一般属性,并且user_data与usersgame_money、game_job、game_tier等具有 1 对 1 关系。如果我将这 2 个组合成 1 个表,列太长,所以我很难规范化它。用户注册工作顺利。但是我不知道如何user_data在新用户注册时添加新条目并在users. 中的属性列user_data(如 game_money 等)是由 laravel 之外的外部应用程序填充的,所以我只需要user_data.user_id在外键中添加一个条目,并让 user_data 中的其他属性在被更新之前使用默认值或 null外部应用程序。这是我的user_data迁移:Schema::create('user_data', function (Blueprint $table) {            $table->unsignedBigInteger('user_id');            $table->foreign('user_id')->references('id')->on('users');            $table->string('account_tier')->default("Free");            $table->float('economy')->default(0);            $table->string('job')->nullable();            $table->timestamps();        });我应该将插入查询放在 Laravel 中的什么位置?或者我应该处理user_data使用外部应用程序?非常感谢。
查看完整描述

3 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

在 RegisterController 里面创建函数


$user= User::create([

            'name' => $data['name'],

            'email' => $data['email'],

            'password' => Hash::make($data['password']),

        ]);

//UserData is the Model of user_data table

$user->UserData->create(['job'=>$data['job']]);

return $user


查看完整回答
反对 回复 2021-10-15
?
跃然一笑

TA贡献1826条经验 获得超6个赞

试试这个例子:


    use Illuminate\Support\Facades\DB;


    $user_data= array(

     'name' => $data['name'],

     'email' => $data['email'],

     'password' => Hash::make($data['password']),

    );

    $role_data= array(

     'user_name' => $data['name'],

     'email' => $data['email']

    );

    $response = DB::table('users')->insert($user_data);

    $response = DB::table('role')->insert($role_data);


查看完整回答
反对 回复 2021-10-15
  • 3 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信