Laravel问题 - "试图获得非对象的财产"

时间:2018-01-18 14:51:45

标签: laravel

控制器:

$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;

那么问题是$活动循环工作正常,但是$ name和$ email返回了一个非对象错误......我想出错的地方有哪些想法?

谢谢!

3 个答案:

答案 0 :(得分:1)

由于您正在使用数组,请更改此:

{{ $args->name }}
{{ $args->email }}

要:

{{ $args['name'] }}
{{ $args['email'] }}

答案 1 :(得分:0)

您正在尝试访问对象值,但您正在向视图发送数组。

$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

答案 2 :(得分:0)

知道了。

一个愚蠢的错误,但我只是在学习Laravel。我在View中包含了$ args,而不仅仅是$ name,$ email和$活动,它们完美无缺。

非常感谢。