嗨,我有多个数据库表('dearchs,suppliers,histories'),并试图在dearches索引上显示与dearches相关的供应商数据(在dearchs表supplier_id中用作外键),但它显示错误:为foreach()提供的参数无效
注意只有经销商在索引上显示,我使用资源路由
索引代码:
@foreach ($data as $row)
<tr>
<td>{{ $row->dealer_name }}</td>
<td>
@foreach($row->supplier as $sp)
{{ $sp->supplier_name }}<br>
@endforeach
</td>
</tr>
@endforeach
控制器代码:
$data = Dealer::all();
return view('dealer.index', compact('data'));
public function dealerHistory()
{
return $this->hasoneThrough('App\History', 'App\Dealer');
}
根据https://laravel.com/docs/5.8/eloquent-relationships#hat-one-through,所有其他模型中只有受保护的fillable
正如您提到的,经销商在这里显示的,那么问题一定在@foreach($row->supplier as$sp)
正如error所说,为foreach()提供的参数无效,您需要验证$row->supplier
是数组。
@foreach ($data as $row)
<tr>
<td>{{ $row->dealer_name }}</td>
<td>
@if(is_array($row->supplier) && !empty($row->supplier))
@foreach($row->supplier as $sp)
{{ $sp->supplier_name }}<br>
@endforeach
@endif
</td>
</tr>
@endforeach
问题内容: 我经常碰巧处理可以是数组或null变量的数据,并用这些数据提供一些数据。 当为foreach提供非数组数据时,会收到警告: 警告:[…]中为foreach()提供了无效的参数 假设无法重构该函数以始终返回数组(向后兼容性,不可用的源代码,无论其他原因),我想知道哪种方法最有效,最有效的避免了这些警告: 转换为数组 初始化为数组 包裹有 其他(请建议) 问题答案: 我个人认为这是最干净的
我试图在一个自定义模块内以编程方式更新一个产品的价格。这是我的代码: 你知道是什么引起的吗?同样的代码在我的dev magento设置工作,但在生产magento中,这个错误开始出现,所以我有点困惑。
问题内容: 我正在使用JDK 1.6.0_26中的VisualVM来分析在Tomcat下运行的Java Webapp,但是VisualVM经常告诉我它没有足够的内存来拍摄快照,并使用-Xmx开关为Netbeans提供更多的内存。 。问题是,我在Netbeans之外运行VisualVM,那么如何为jvisualvm.exe提供JVM参数? 问题答案: 应该能够修改内存中的设置 并且在排队。
我正在使用TestNG和Java运行测试 这是在https://www.tutorialspoint.com/testng/testng_parameterized_test.htm 错误是这样说的:[Utils][ERROR][错误]org.testng.TestNGExc0019:@Test on method addProjectWork需要参数'url',但未在C:\用户\SStaple\
标准中似乎没有规则提到模板参数需要默认参数的情况。 在dcl中。fct。默认值#1 如果在参数声明中指定了初始化子句,则将此初始化子句用作默认参数。缺省参数将用于缺少尾随参数的调用。 在本节中,规则明确描述了何时为函数调用提供默认参数。但是,我在标准中没有找到与上面描述何时提供默认参数作为模板参数的语句类似的引用。 例如
问题内容: 我想用 具有要求构造函数参数的Exception类型。像这样: 有没有一种方法可以创建一个将我的参数值传入的供应商? 问题答案: 当然。