微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 错误:试图获取非对象的属性一对多关系

如何解决Laravel 错误:试图获取非对象的属性一对多关系

我遇到此错误试图获取非对象的属性我有两个模型和一个 Livewire 组件。

the models are Staffrecord and Loanassignment

This how I defined their relationship:

**Staffrecord Model RelationshiP**

  public function loans()
    {
        return $this->hasMany(Loanassignment::class,'staff_id');
    }
**Loanassignment Model RetionshiP**

   public function staff()
    {
        return $this->belongsTo(Staffrecord::class,'staff_id');
    }


**LIVEWIRE CLASS**

在live wire类中,我设置了员工ID,以便我可以找到员工并向他或这里分配贷款。但是我遇到了很多问题。

   public $staff;
   public $staff_id = 'ST-001';
//store method for Loan Assignment

    public function store()
    {

        $validatedData = $this->validate([
            'loan_amount' => 'required','loan_date' => 'required|date','loan_type_id' => 'required','repayment_start_date' => 'required|date|after:' . Carbon::create($this->loan_date)->addMonths(1)->subDay(),'repayment_end_date' => 'required|date|after:repayment_start_date',]);


        $this->staff->loans()->create($validatedData);

        session()->flash('message','Loan assignment created successfully!');
        $this->resetInputFields();
        $this->emit('loanAssignmentAdded');
    }

   public function render()
    {
        $this->staff = Staffrecord::with('loans')->where('staff_id',"=",$this->staff_id)->first();


        
        return view('livewire.staff-account-payslip');
    }
LIVEWIRE VIEW

 @foreach ($staff->loans as $loan)
                                <tr>
                                    <td> Loan</td>
                                    <td>{{ $loan->loan_amount }}</td>
                                </tr>
                            @endforeach

WHEN I dd($this->staff)
App\Models\Staffrecord {#1545 ▼
  #table: "staffrecords"
  #primaryKey: "staff_id"
  +incrementing: false
  #guarded: []
  #connection: "MysqL"
  #keyType: "int"
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:12 [▼
    "id" => 20
    "staff_id" => "ST-001"
    "first_name" => "SESUGH"
    "middle_name" => "Gabriel"
    "last_name" => "ABENGA"
    "designation" => "Admin"
    "grade_level_id" => 4
    "phone_number" => 8066604542
    "email" => "captainsesman@gmail.com"
    "address" => "no 31 libreville street wuse 2"
    "created_at" => "2021-02-10 01:29:19"
    "updated_at" => "2021-02-10 01:29:19"
  ]
  #original: array:12 [▼
    "id" => 20
    "staff_id" => "ST-001"
    "first_name" => "SESUGH"
    "middle_name" => "Gabriel"
    "last_name" => "ABENGA"
    "designation" => "Admin"
    "grade_level_id" => 4
    "phone_number" => 8066604542
    "email" => "captainsesman@gmail.com"
    "address" => "no 31 libreville street wuse 2"
    "created_at" => "2021-02-10 01:29:19"
    "updated_at" => "2021-02-10 01:29:19"
  ]
  #changes: []
  #casts: []
  #classCastCache: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: array:1 [▼
    "loans" => Illuminate\Database\Eloquent\Collection {#1563 ▼
      #items: array:13 [▼
        0 => App\Models\Loanassignment {#1567 ▼
          #table: "loanassignments"
          #fillable: array:6 [▶]
          #connection: "MysqL"
          #primaryKey: "id"
          #keyType: "int"
          +incrementing: true
          #with: []
          #withCount: []
          #perPage: 15
          +exists: true
          +wasRecentlyCreated: false
          #attributes: array:10 [▼
            "id" => 43
            "staff_id" => "ST-001"
            "loan_amount" => 5000.0
            "loan_date" => "2020-12-04"
            "status" => "active"
            "loan_type_id" => 1
            "repayment_start_date" => "2021-02-01"
            "repayment_end_date" => "2021-06-17"
            "created_at" => "2021-02-12 02:28:12"
            "updated_at" => "2021-02-12 02:28:12"
          ]
          #original: array:10 [▶]
          #changes: []
          #casts: []
          #classCastCache: []
          #dates: []
          #dateFormat: null
          #appends: []
          #dispatchesEvents: []
          #observables: []
          #relations: []
          #touches: []
          +timestamps: true
          #hidden: []
          #visible: []
          #guarded: array:1 [▶]
        }
        1 => App\Models\Loanassignment {#1568 ▶}
        2 => App\Models\Loanassignment {#1569 ▶}
        3 => App\Models\Loanassignment {#1570 ▶}
        4 => App\Models\Loanassignment {#1571 ▶}
        5 => App\Models\Loanassignment {#1572 ▶}
        6 => App\Models\Loanassignment {#1573 ▶}
        7 => App\Models\Loanassignment {#1574 ▶}
        8 => App\Models\Loanassignment {#1575 ▶}
        9 => App\Models\Loanassignment {#1576 ▶}
        10 => App\Models\Loanassignment {#1577 ▶}
        11 => App\Models\Loanassignment {#1578 ▶}
        12 => App\Models\Loanassignment {#1580 ▶}
      ]
    }
  ]
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #fillable: []
}

我不知道我做错了什么,请帮忙

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。