将控制器传递给视图后无法获取数组变量内容

时间:2018-01-15 13:10:40

标签: php laravel laravel-5

我在从控制器解码到视图后传递数组。

AddressController.php

$pro = $request->input('pro');
$pro_array = json_decode($pro, true);

    Mail::send('emails.send', ['title' => $title,'pro_array' => $pro_array, 'email' => $email, 'fname' => $fname,
        'lname' => $lname, 'addressline' => $addressline, 'Ttl' => $Ttl, 'phone' => $phone], function ($message) use ($email)
    {
        $message->from($email);
        $message->to('info@phalwala.com', 'Phalwala');
        $message->subject("Welcome To Phalwala");

    });
return redirect('/')

我只想从数组中获取名称,价格和数量,但它正在尝试获取非对象的属性。

send.blade.php

@foreach($pro_array as $cartItem)
    <p>Products: {{$cartItem->name}}</p>
    <p>Unit Price: {{$cartItems->price}} X {{$cartItems->qty}}</p>
    @endforeach

3 个答案:

答案 0 :(得分:1)

只需访问密钥,而不是像对象一样尝试访问密钥:

@foreach($pro_array as $cartItem)
    <p>Products: {{$cartItem['name']}}</p>
    <p>Unit Price: {{$cartItems['price']}} X {{$cartItems['qty']}}</p>
@endforeach

答案 1 :(得分:1)

您正在使用对象表示法non-object。您的错误表明您正在$pro_array上执行此操作。 $cartItem['name']项的类型为数组,因此您需要使用数组表示法{{1}}。

答案 2 :(得分:0)

如果$pro_array返回数组,请在控制器中使用集合

示例:$pro_array = collection($pro_array);