如何解决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 举报,一经查实,本站将立刻删除。