【问题标题】:Data isn't inserting into different tables from one form数据未从一种表单插入到不同的表中
【发布时间】:2019-11-29 23:40:55
【问题描述】:

我正在尝试将一个表单中的数据提交到两个不同的表中,但它没有提交,我的表单包含两个部分,一个是模型,即当模态表单提交时,它的数据保存到一个表中,其余的其他数据到另一个表中。

控制器

public function store(Request $request)
{
    $request->validate([
        'patient_fname' => 'required',
        'patient_lname' => 'required',
        'patient_email' => 'required',
        'patient_dob' => 'required',
        'patient_guardian' => 'required',
        'patient_gender' => 'required',
        'user_id' => 'required',
        'patient_name' => 'required',
        'patient_insurance' => 'required',
        'patient_insurance_id' => 'required',
        'patient_reason' => 'required',
        'patient_new' => 'required',
        'patient_contact_no' => 'required',
        'patient_message' => 'required',
    ]);

    $userdata = Userdata::create([
        Input::get('patient_fname'),
        Input::get('patient_lname'),
        Input::get('patient_email'),
        Input::get('patient_dob'),
        Input::get('patient_guardian'),
        Input::get('patient_gender')
    ]);

    $form = Form::create([
        Input::get('patient_name'),
        Input::get('patient_insurance'),
        Input::get('patient_insurance_id'),
        Input::get('patient_reason'),
        Input::get('patient_new'),
        Input::get('patient_contact_no'),
        Input::get('patient_message')
    ]);

    return back();
}

form.php

protected $guarded = [];

protected $table = "forms";

protected $fillable=['patient_name', 
    'patient_insurance','patient_insurance_id', 'patient_reason', 
    'patient_new', 'patient_message'];

public function userdata()
{
    return $this->belongsTo('App\Userdata');
}

userdata.php

protected $fillable = ['patient_fname', 'patient_lname', 
    'patient_email', 'patient_dob', 'patient_guardian', 
    'patient_gender','user_id'];

public function form()
{
    return $this->hasMany('App\Form');
}

【问题讨论】:

  • 1.表名?? 2. form.php & userdata.php 是模型名称?
  • 您遇到错误了吗?
  • 你只保存数据吗??从一张表格到三张桌子?

标签: laravel eloquent laravel-5.8


【解决方案1】:

我想这是因为您没有为 create 方法中的值提供密钥。

另外,validate 将返回一个经过验证的属性数组,因此您可以使用它而不是使用 Input::get()

public function store(Request $request)
{
    $data = $request->validate([
        'patient_fname'        => 'required',
        'patient_lname'        => 'required',
        'patient_email'        => 'required',
        'patient_dob'          => 'required',
        'patient_guardian'     => 'required',
        'patient_gender'       => 'required',
        'user_id'              => 'required',
        'patient_name'         => 'required',
        'patient_insurance'    => 'required',
        'patient_insurance_id' => 'required',
        'patient_reason'       => 'required',
        'patient_new'          => 'required',
        'patient_contact_no'   => 'required',
        'patient_message'      => 'required',
    ]);

    $userdata = Userdata::create([
        'patient_fname'    => $data['patient_fname'],
        'patient_lname'    => $data['patient_lname'],
        'patient_email'    => $data['patient_email'],
        'patient_dob'      => $data['patient_dob'],
        'patient_guardian' => $data['patient_guardian'],
        'patient_gender'   => $data['patient_gender'],
    ]);

    $form = Form::create([
        'patient_name'         => $data['patient_name'],
        'patient_insurance'    => $data['patient_insurance'],
        'patient_insurance_id' => $data['patient_insurance_id'],
        'patient_reason'       => $data['patient_reason'],
        'patient_new'          => $data['patient_new'],
        'patient_contact_no'   => $data['patient_contact_no'],
        'patient_message'      => $data['patient_message'],
    ]);

    return back();
}

【讨论】:

    猜你喜欢
    • 2023-03-26
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多