当前位置 主页 > 网站技术 > 代码类 >

    Laravel 关联模型-关联新增和关联更新的方法

    栏目:代码类 时间:2019-10-10 15:06

    网上找了 Laravel 相关的关联新增和关联更新文档,写的都不是很满意。(基本都在抄文档)下面整理下自己代码中的关联操作方法

    按照 Laravel 文档中的说明设置关联模型 参考地址

    //病人模型
    class Patient extends Model
    {
      /**
       * 病人附表
       * @return \Illuminate\Database\Eloquent\Relations\HasOne
       */
      public function patientdata ()
      {
        return $this->hasOne(PatientData::class);
      }
      
     //病人附表模型
    class PatientData extends Model
    {
      public function patient()
      {
        return $this->belongsTo(Patient::class);
      } 
      

    关联更新代码

    /**
     * 新增病人信息
     * @param array $data
     *
     * @return bool
     */
    public function savePatient($data=[])
    {
      DB::beginTransaction();
      if($patient = $this->create($data)){
        if ($res = $patient->patientdata()->create(["数据"])){
          DB::commit();
        } else{
          DB::rollBack();
        }
        return true;
      }
      return false;
    }

    关联更新代码

    public function updatePatient($data=[])
    {
      DB::beginTransaction();
      //先通过主键获得病人模型的实例
      $patient = $this->find($data['id']);
      if($patient->update($data)){
        if ($res = $patient->patientdata()->where('patient_id',$data['id'])->update(["数据"])){
          DB::commit();
        } else{
          DB::rollBack();
        }
        return true;
      }
      return false;
    }

    以上这篇Laravel 关联模型-关联新增和关联更新的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。