Laravel使用雄辩的未定义的财产(Undefined property in Laravel using Eloquent)

系统教程 行业动态 更新时间:2024-06-14 16:57:39
Laravel使用雄辩的未定义的财产(Undefined property in Laravel using Eloquent)

使用雄辩时我有一个问题。

这是错误消息。

Undefined property: Illuminate\Database\Eloquent\Collection::$refunds

这是我的模特。 受益人延伸Eloquent {

public function refunds(){ return $this->hasMany('Refund'); } } class Refund extends Model { protected $guarded = array(); public static $rules = array( 'request_id' => 'required', 'beneficiary_id' => 'required', 'concept' => 'required', 'date' => 'required | date_format:Y-m-d', 'amount' => 'required | min:-1 | numeric', 'deductible_amount' => 'required | numeric', 'max_applied' => 'required | numeric', 'yearly_balance' => 'required | numeric', 'payment_amount' => 'required | min:-1 | numeric', 'payment_date' => 'required | date_format:Y-m-d', ); public function beneficiary(){ return $this->belongsTo('Beneficiary','beneficiary_id'); } public function request(){ return $this->belongsTo('Models\Request','request_id'); } }

这是我的模型。

class HomeController extends BaseController { public function getIndex(){ $requests = Requisition::with(array( 'refunds' => function($refundsQuery){ $refundsQuery->with(array( 'beneficiary' => function($beneficiaryQuery){ $beneficiaryQuery->with(array('beneficiary', 'holder')); } )); }, 'policy' => function($policyQuery){ $words=explode(' ',trim(Input::get('policy_code'))); $policyQuery->where('code','LIKE','%'.$words[0].'%'); for($i=1;$i<count($words);$i++){ $policyQuery->orWhere('code','LIKE','%'.$words[$i].'%'); } }, 'refunds' => function($refundsQuery){ $refundsQuery->with(array( 'beneficiary' => function($beneficiaryQuery){ $beneficiaryQuery->with(array('beneficiary','rut')); } )); } )); if(Input::has('request_number')){ $words=explode(' ',trim(Input::get('request_number'))); $requests->where('number','LIKE','%'.$words[0].'%'); for($i=1;$i<count($words);$i++){ $requests->orWhere('number','LIKE','%'.$words[$i].'%'); } } if(Input::has('policy_code')){ $requests->whereHas('policy', function($policyQuery){ $words=explode(' ',trim(Input::get('policy_code'))); $policyQuery->where('code','LIKE','%'.$words[0].'%'); for($i=1;$i<count($words);$i++){ $policyQuery->orWhere('code','LIKE','%'.$words[$i].'%'); } }); } if(Input::has('rut')){ $person = Person::where('rut', Input::get('rut'))->get(); $beneficiary = Beneficiary::where('rut',Input::get('rut'))->get(); $refunds = $beneficiary->refunds; //Error } $requests = $requests->paginate(10); return View::make('home.index',array( 'requests'=>$requests, 'policy_code' => Input::get('policy_code'), 'request_number' => Input::get('request_number'), 'rut' => Input::get('rut') ));

在这一行发生错误$ refunds = $ beneficiary-> refunds;

任何想法?

I have a problem when use Eloquent.

This is the error message.

Undefined property: Illuminate\Database\Eloquent\Collection::$refunds

This is My model. class Beneficiary extends Eloquent {

public function refunds(){ return $this->hasMany('Refund'); } } class Refund extends Model { protected $guarded = array(); public static $rules = array( 'request_id' => 'required', 'beneficiary_id' => 'required', 'concept' => 'required', 'date' => 'required | date_format:Y-m-d', 'amount' => 'required | min:-1 | numeric', 'deductible_amount' => 'required | numeric', 'max_applied' => 'required | numeric', 'yearly_balance' => 'required | numeric', 'payment_amount' => 'required | min:-1 | numeric', 'payment_date' => 'required | date_format:Y-m-d', ); public function beneficiary(){ return $this->belongsTo('Beneficiary','beneficiary_id'); } public function request(){ return $this->belongsTo('Models\Request','request_id'); } }

And this is my Model.

class HomeController extends BaseController { public function getIndex(){ $requests = Requisition::with(array( 'refunds' => function($refundsQuery){ $refundsQuery->with(array( 'beneficiary' => function($beneficiaryQuery){ $beneficiaryQuery->with(array('beneficiary', 'holder')); } )); }, 'policy' => function($policyQuery){ $words=explode(' ',trim(Input::get('policy_code'))); $policyQuery->where('code','LIKE','%'.$words[0].'%'); for($i=1;$i<count($words);$i++){ $policyQuery->orWhere('code','LIKE','%'.$words[$i].'%'); } }, 'refunds' => function($refundsQuery){ $refundsQuery->with(array( 'beneficiary' => function($beneficiaryQuery){ $beneficiaryQuery->with(array('beneficiary','rut')); } )); } )); if(Input::has('request_number')){ $words=explode(' ',trim(Input::get('request_number'))); $requests->where('number','LIKE','%'.$words[0].'%'); for($i=1;$i<count($words);$i++){ $requests->orWhere('number','LIKE','%'.$words[$i].'%'); } } if(Input::has('policy_code')){ $requests->whereHas('policy', function($policyQuery){ $words=explode(' ',trim(Input::get('policy_code'))); $policyQuery->where('code','LIKE','%'.$words[0].'%'); for($i=1;$i<count($words);$i++){ $policyQuery->orWhere('code','LIKE','%'.$words[$i].'%'); } }); } if(Input::has('rut')){ $person = Person::where('rut', Input::get('rut'))->get(); $beneficiary = Beneficiary::where('rut',Input::get('rut'))->get(); $refunds = $beneficiary->refunds; //Error } $requests = $requests->paginate(10); return View::make('home.index',array( 'requests'=>$requests, 'policy_code' => Input::get('policy_code'), 'request_number' => Input::get('request_number'), 'rut' => Input::get('rut') ));

In this line occurs the error $refunds = $beneficiary->refunds;

Any idea?

最满意答案

当你这样做

$beneficiary = Beneficiary::where('rut',Input::get('rut'))->get();

包含模型集合,而不是模型,因此您必须:

$beneficiaries = Beneficiary::where('rut',Input::get('rut'))->get(); foreach($beneficiaries as $beneficiary) { echo $beneficiary->refunds; }

要么

$beneficiary = Beneficiary::where('rut',Input::get('rut'))->first();

When you do

$beneficiary = Beneficiary::where('rut',Input::get('rut'))->get();

Contains a Collection of models, not a Model, so you have to:

$beneficiaries = Beneficiary::where('rut',Input::get('rut'))->get(); foreach($beneficiaries as $beneficiary) { echo $beneficiary->refunds; }

Or

$beneficiary = Beneficiary::where('rut',Input::get('rut'))->first();

更多推荐

本文发布于:2023-04-13 11:52:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/80bfef50e42dab334c11a81c70008aa3.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:雄辩   财产   未定义   Laravel   property

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!