代码之家  ›  专栏  ›  技术社区  ›  Pranav Mandlik

尝试在数组中用打印值时字符串偏移量非法

  •  2
  • Pranav Mandlik  · 技术社区  · 6 年前

    我正在邮件模板中呈现视图,但在我的视图中,当我使用 dd($row['product_name']); . 我得到产品名称,但不在以下代码中不知道此错误的含义:

    @foreach ($order as $row)
        <tr>
            <td>{{ $row['product_name'] }}</td>
            <td>{{ $row['amount'] }}</td>
            <td>{{ $row['quantity'] }}</td>
    
        </tr>
    @endforeach
    

    获取错误:

    非法字符串偏移量“product\u name”

    8 回复  |  直到 6 年前
        1
  •  2
  •   Bas    6 年前

    $order是一个对象 $row->product_name 不是数组 $row['product_name'] .

    @foreach ($order as $row)
        <tr>
            <td>{{ $row->product_name }}</td>
            <td>{{ $row->amount }}</td>
            <td>{{ $row->quantity }}</td>
        </tr>
    @endforeach
    
        2
  •  1
  •   Ranjit Shinde    6 年前

    可能是因为数组元素中不存在“product\u name”键。在使用它之前,检查该数组元素中是否存在键 isset

    @foreach ($order as $row)
            <tr>
                <td>{{ isset($row['product_name'])?$row['product_name']:'' }}</td>
    
            </tr> @endforeach
    
        3
  •  1
  •   abhijeet.supekar    6 年前

    试试这个:

    @foreach ($order as $row)
            <tr>
                <td>{{ $row->product_name }}</td>
                <td>{{ $row->amount }}</td>
                <td>{{ $row->quantity }}</td>
    
            </tr>
    @endforeach
    

    查看刀片的Laravel文档 https://laravel.com/docs/5.6/blade

        4
  •  1
  •   Girish    6 年前

    你能试试这个方法吗

    @foreach ($order as $row)
            <tr>
                <td>{{ $row->product_name }}</td>
                <td>{{ $row->amount }}</td>
                <td>{{ $row->quantity }}</td>
    
            </tr>
    @endforeach
    
        5
  •  1
  •   Ankita Mehta    6 年前

    添加 dd($row) 安装DD($row['product_name'])。

        6
  •  1
  •   krishna mishra    6 年前

    您的控制器返回对象而不是数组,所以您尝试这样做

    @foreach ($order as $row)
        <tr>
            <td>{{ $row->product_name }}</td>
            <td>{{ $row->amount }}</td>
            <td>{{ $row->quantity }}</td>
        </tr>
    @endforeach
        7
  •  1
  •   DsRaj    6 年前

    $order是一个对象,不能像数组那样使用它

    @foreach ($order as $row)
        <tr>
            <td>{{ $row->product_name }}</td>
            <td>{{ $row->amount }}</td>
            <td>{{ $row->quantity }}</td>
        </tr>
    @endforeach
    

    如果要使用这样的记录,则需要转换对象 toArray()

    $order =  $order->toArray();
    

    之后,您可以这样使用: $row['product_name']

        8
  •  1
  •   sandip bharadva    6 年前

    这里$order是一个对象,因此不能像$row['product_name']那样使用。可以使用->运算符使用对象的属性。所以试试这个

    @foreach ($order as $row)
            <tr>
                <td>{{ $row->product_name }}</td>
                <td>{{ $row->amount }}</td>
                <td>{{ $row->quantity }}</td>
    
            </tr>
    @endforeach