Laravel 访问具有一对多关系的子属性
我有Laravel 访问具有一对多关系的子属性,laravel,eloquent,has-many,Laravel,Eloquent,Has Many,我有会员、贷款和利息金额贷款与利息金额有很多关系。我似乎无法从Interestamount访问数据 我可以在blade中显示贷款id和Interestamount,但无法为给定的贷款排序Interestamount LoanController.php public function loainterest($criteria){ //$loanData=贷款::全部(); $loanData=贷款::findOrFail($criteria); 返回视图($this->\u pagePath.
会员
、贷款
和利息金额
<代码>贷款与利息金额
有很多关系。我似乎无法从Interestamount
访问数据
我可以在blade中显示贷款id
和Interestamount
,但无法为给定的贷款排序Interestamount
LoanController.php
public function loainterest($criteria){
//$loanData=贷款::全部();
$loanData=贷款::findOrFail($criteria);
返回视图($this->\u pagePath.loan.loainterest',compact('loanData');
}
web.php
Route::any('loaninterest/{criteria?}','LoanController@loanInterest')
->名称(“贷款利息”);
Loan.php
使用illumb\Database\elount\Model;
类贷款扩展模型
{
受保护的$fillable=[
“金额”,
“利息”,
"地位",,
“持续时间”,
“成员id”,
“贷款类型id”,
“利息类型id”,
“贷款\付款\类型\ id”
];
//受保护的$appends='利息\金额
公共函数getInterestAmountAttribute()
{
返回($this->amount)/100*$this->利息;
}
公共职能部门利益计算()
{
return$this->hasMany(InterestAmount::class,'loan_id','id');
}
}
InterestAmount.php
使用illumb\Database\elount\Model;
类兴趣计数扩展模型
{
受保护的$fillable=['interestamount'];
公共职能贷款()
{
返回$this->belongsTo(Loan::class,'Loan_id','id');
}
}
loaninterest.blade.php
{{$loanadata->member->name}
@foreach($loanada->interestamount()作为$int)
{{$int->interestamount}
@endforeach
loan.blade.php
将您的loaninterest更改为此
<td>{{$loanData->member->name}}</td>
@foreach($loanData->interestamount as $int)
<td>{{$int->interestamount}} </td>
@endforeach
</tr>
{{$loanadata->member->name}
@外汇($loanData->利息金额为$int)
{{$int->interestamount}
@endforeach
当我们使用$loanada->interestamount()
时,它指的是一个查询生成器,但当我们使用$loanada->interestamount
时,它返回的相关集合与$loanada->interestamount()->get()
将loaninterest更改为该集合
<td>{{$loanData->member->name}}</td>
@foreach($loanData->interestamount as $int)
<td>{{$int->interestamount}} </td>
@endforeach
</tr>
{{$loanadata->member->name}
@外汇($loanData->利息金额为$int)
{{$int->interestamount}
@endforeach
当我们使用$loanada->interestamount()
时,它指的是查询生成器,但当我们使用$loanada->interestamount
时,它返回的相关集合与$loanada->interestamount()->get()
$loanada->interestamount()
返回的是查询生成器实例,而不是查询结果
有几种方法可以从关系函数中获得结果
其中之一是调用get()
函数
Exmaple
$loanadata->interestamount()->get();
另一种方法是调用关系函数,不是作为函数,而是作为属性
示例
$loanada->interestamount;
因此,在您的刀片文件中@foreach()
@foreach($loanada->interestamount as$int)
{{$int->interestamount}
@endforeach
$loanadata->interestamount()
返回查询生成器实例而不是查询结果
有几种方法可以从关系函数中获得结果
其中之一是调用get()
函数
Exmaple
$loanadata->interestamount()->get();
另一种方法是调用关系函数,不是作为函数,而是作为属性
示例
$loanada->interestamount;
因此,在您的刀片文件中@foreach()
@foreach($loanada->interestamount as$int)
{{$int->interestamount}
@endforeach
我不知道原因,但我这样做了,效果很好
<td>{{$loanData->member->name}}</td>
@foreach($loanData->interestamount()->get() as $int)
<td>{{$int->interestamount}} </td>
@endforeach
{{$loanadata->member->name}
@foreach($loanada->interestamount()->get()作为$int)
{{$int->interestamount}
@endforeach
我不知道原因,但我这样做了,效果很好
<td>{{$loanData->member->name}}</td>
@foreach($loanData->interestamount()->get() as $int)
<td>{{$int->interestamount}} </td>
@endforeach
{{$loanadata->member->name}
@foreach($loanada->interestamount()->get()作为$int)
{{$int->interestamount}
@endforeach
而不是$loanada->interestamount()
us$loanada->interestamount
。而不是$loanada->interestamount()
us$loanada->interestamount
。我实际上按照您最初提到的那样做了,它给出了错误foreachi提供的无效参数。我实际上按照您最初提到的那样做了,它给出了错误foreachi提供的无效参数,然后首先检查这个$loadData->interestamount
。删除@foreach()
一段时间,然后编写这个{{{$loanadata->interestamount}}
是的,当我这样做时,它只会给出许多“interestamount”中的一个。我使用了interestamount()->get(),我给出了所有的“interestamout”,我认为这是因为与getInterestAmountAttribute
有些混淆。老实说,你的关系名字不合适。(这不是一个错误,但不是一个正确的名称)由于它返回许多利息金额,您应该将其命名为interestAmounts()
(复数)。并且不要忘记使用camel case。是的,我之前就意识到了这一点。正如您在getInterestAmountAttribute中提到的,实际上是“利息金额”引起了问题。所以我把它改成了“兴趣山”。无论如何,谢谢你。我将进行更改并查看。然后首先检查此$loadData->interestamount
。删除@foreach()
一段时间,然后编写这个{{{$loanadata->interestamount}}
是的,当我这样做时,它只会给出许多“interestamount”中的一个。我用了兴趣