【问题标题】:Adding Data to Belongs to resource using TextField laravel Nova使用 TextField laravel Nova 将数据添加到资源
【发布时间】:2021-02-01 12:30:37
【问题描述】:

嗨,有没有办法在一个请求中将数据插入两个表中 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

我希望我能澄清我的观点,谢谢,如果有任何问题可以随时询问或合作,谢谢

【问题讨论】:

    标签: php laravel vue.js eloquent laravel-nova


    【解决方案1】:

    你可以在你的模型中这样做,你需要重写保存函数:

    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
    
        }
    }
    

    【讨论】:

    • 谢谢,我可以通过保存函数中的 $this 变量获取属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2019-12-08
    • 2021-03-05
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多