我正在邮件模板中呈现视图,但是在我看来,使用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_name'
答案 0 :(得分:2)
$ 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
答案 1 :(得分:1)
这可能是因为数组元素中不存在“ product_name”键。在使用它之前,请使用isset
@foreach ($order as $row)
<tr>
<td>{{ isset($row['product_name'])?$row['product_name']:'' }}</td>
</tr> @endforeach
答案 2 :(得分:1)
尝试这个:
@foreach ($order as $row)
<tr>
<td>{{ $row->product_name }}</td>
<td>{{ $row->amount }}</td>
<td>{{ $row->quantity }}</td>
</tr>
@endforeach
查看刀片https://laravel.com/docs/5.6/blade的laravel文档
答案 3 :(得分:1)
您可以尝试此解决方案吗
@foreach ($order as $row)
<tr>
<td>{{ $row->product_name }}</td>
<td>{{ $row->amount }}</td>
<td>{{ $row->quantity }}</td>
</tr>
@endforeach
答案 4 :(得分:1)
添加 dd($ row)的dd($ row ['product_name'])。
答案 5 :(得分:1)
您的控制器返回的对象不是数组,所以您尝试这样做
@foreach ($order as $row)
<tr>
<td>{{ $row->product_name }}</td>
<td>{{ $row->amount }}</td>
<td>{{ $row->quantity }}</td>
</tr>
@endforeach
答案 6 :(得分:1)
$ 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']
答案 7 :(得分:1)
这里$ order是一个对象,因此不能像$ row ['product_name']这样使用。可以使用->运算符使用对象的属性。所以尝试这样
t = setTimeout(add, 1);