Laravel 问题-“试图获取非对象的属性”
Posted
技术标签:
【中文标题】Laravel 问题-“试图获取非对象的属性”【英文标题】:Laravel issue- "Trying to get property of non-object" 【发布时间】:2018-06-27 16:32:40 【问题描述】:控制器:
$args = array();
$args['name'] = "Robin";
$args['email'] = "asdasd@asdasd.net";
$clientpayments = Payments::getPaymentByClient($id);
$args['activity'] = $clientpayments;
return view('clients.show',["args" => $args]);
查看:
$args->name
$args->email
@if (isset($args['activity']))
@foreach ($args['activity'] as $act)
$act->job_name
@endforeach
@endif;
所以问题是 $activity 循环工作正常,但 $name 和 $email 返回一个非对象错误......有什么想法我要去哪里错了吗?
谢谢!
【问题讨论】:
数组不是对象。 Trying to get property of non-object in的可能重复 【参考方案1】:由于您使用的是数组,因此请更改:
$args->name
$args->email
收件人:
$args['name']
$args['email']
【讨论】:
【参考方案2】:您正在尝试访问一个对象值,但您正在向您的视图发送一个数组。
$payments = Payments::getPaymentByClient($id);
$args = array([
'name' => 'Robin',
'email' => 'asdasd@asdasd.net',
'activity' => $payments, // Expecting a collection
]);
return view('clients.show', [
"args" => (object) $args // Cast into an object
]);
刀片模板(如果您有对象)
$args->name
$args->email
// If your activity is a collection
@foreach ($args->activity as $act)
$act->job_name
@endforeach
刀片模板(如果您有数组)
$args['name']
$args['email']
// If your activity is a collection
@foreach ($args['activity'] as $act)
$act->job_name
@endforeach
【讨论】:
【参考方案3】:知道了。
一个愚蠢的错误,但我只是在学习 Laravel。我在视图中包含了 $args,而不仅仅是 $name、$email 和 $activity,它们运行良好。
还是谢谢。
【讨论】:
以上是关于Laravel 问题-“试图获取非对象的属性”的主要内容,如果未能解决你的问题,请参考以下文章