首页 > 解决方案 > 使用 TextField laravel Nova 将数据添加到资源

问题描述

嗨,有什么方法可以在一个请求中在两个表中插入数据 laravel nova belongsTo 关系我想要实现的是我有两个模型,第一个是用户模型,第二个是学生模型用户模型有电子邮件和密码并且学生模型在创建学生时具有学生的其他分析详细信息我还需要在用户表中插入一条记录,并将插入的实体与我的学生详细信息相关联,例如某些实体进入学生详细信息,而用户模型中的某些实体与身份验证相关我正在尝试使用 laravel nova 来实现这一目标。

这是用户模型与学生的关系

 public function students(){
    return $this->hasMany('App\student','user_id','id');
}

这是学生模型与用户的关系

public function user(){
    return $this->belongsTo('App\User','user_id','id');
}

我也尝试使用 nova 属于字段,但它为我提供了现有用户的下拉列表,但我想一次性创建用户和学生并将它们相互链接 https://nova.laravel.com/docs/ 2.0/resources/relationships.html#belongsto

我希望我能澄清我的观点谢谢,如果有什么可以随意询问或合作谢谢

标签: phplaravelvue.jseloquentlaravel-nova

解决方案


您可以在模型中执行此操作,您需要覆盖保存功能:

public function save(array $options = array()) {
    parent::save($options);
}

请注意,为了将您当前的模型链接到另一个模型,您需要在此行之后进行 parent::save($options); 因为在将模型实际保存在数据库中之前,您无法获取当前记录的 $this->"primary_key"

前任:

class Student
{
    public function save(array $options = array()) {

        $user = new User();
        $user->property1 = '';
        $user->property2 = '';
        $user->save();

        parent::save($options);

        //Here you can get the $this->studentid
        //Or the $user->userid

    }
}

推荐阅读