Laravel issue- "Trying to get property of non-object"
控制器:
1 2 3 4 5 6 | $args = array(); $args['name'] ="Robin"; $args['email'] ="[email protected]"; $clientpayments = Payments::getPaymentByClient($id); $args['activity'] = $clientpayments; return view('clients.show',["args" => $args]); |
视图:
1 2 3 4 5 6 7 8 | {{ $args->name }} {{ $args->email }} @if (isset($args['activity'])) @foreach ($args['activity'] as $act) {{$act->job_name}} @endforeach @endif; |
所以问题是 $activity 循环工作正常,但 $name 和 $email 返回一个非对象错误...有什么想法我要去哪里错了吗?
谢谢!
由于您使用的是数组,请更改以下内容:
1 2 | {{ $args->name }} {{ $args->email }} |
收件人:
1 2 | {{ $args['name'] }} {{ $args['email'] }} |
知道了。
一个愚蠢的错误,但我只是在学习 Laravel。我在视图中包含了 $args,而不仅仅是 $name、$email 和 $activity,它们运行良好。
还是谢谢你。
您正在尝试访问一个对象值,但您正在向您的视图发送一个数组。
1 2 3 4 5 6 7 8 9 10 11 | $payments = Payments::getPaymentByClient($id); $args = array([ 'name' => 'Robin', 'email' => '[email protected]', 'activity' => $payments, // Expecting a collection ]); return view('clients.show', [ "args" => (object) $args // Cast into an object ]); |
刀片模板(如果你有一个对象)
1 2 3 4 5 6 7 | {{ $args->name }} {{ $args->email }} // If your activity is a collection @foreach ($args->activity as $act) {{ $act->job_name }} @endforeach |
刀片模板(如果你有一个数组)
1 2 3 4 5 6 7 | {{ $args['name'] }} {{ $args['email'] }} // If your activity is a collection @foreach ($args['activity'] as $act) {{ $act->job_name }} @endforeach |