laravel - 错误 - 试图获取非对象的属性 - 在 laravel
问题描述
当我从类别表中获取类别名称时,我遇到了问题.. 代码在这里..
谢谢。
public function viewProducts(){
$products = Product::get();
$products = json_decode(json_encode($products));
foreach($products as $key => $val){
$category_name = Category::where(['id'=>$val->category_id])->first();
$products[$key]->category_name= $category_name->name;
}
echo "<pre>";print_r($products);die;
return view('admin.products.view_products')->with(compact('products'));
}
ErrorException (E_NOTICE) Trying to get property of non-object enter image description here
解决方案
错误是直截了当的。您还没有获得 $category_name 变量的任何对象,并且您正在尝试访问 name 属性的值。没有定义,因为没有对象。
添加一个简单的条件来修复它
public function viewProducts(){
$products = Product::get();
$products = json_decode(json_encode($products));
foreach($products as $key => $val){
$category_name = Category::where(['id'=>$val->category_id])->first();
if($category_name != null){
$products[$key]->category_name= $category_name->name;
}
}
echo "<pre>";print_r($products);die;
return view('admin.products.view_products')->with(compact('products'));
}
要将数据发送到刀片:
# Controller:
$data['category_name'] = $category_name;
$data['products'] = $products;
->withKeyName($data);
# Blade:
{{ $KeyName['category_name'] }}
{{ $KeyName['products'] }}
推荐阅读
- reporting-services - SSRS:需要组页脚位于页面底部
- python - Scrapy:选择所有子元素的文本,但也返回子 HTML
- excel - Excel宏VBA - 单元格是否包含而不是完全匹配
- angular - Angular Karma 测试的自定义 context.html
- quarkus - 使用 application.yaml 而不是 application.properties 配置应用程序
- parse-platform - 在解析服务器 get() 方法导致崩溃
- html - 固定或绝对时堆叠 CSS 元素
- json - JSON在Swift中对递归枚举进行解码和编码
- android - actionNext 不会滚动显示最后一个 TextInputLayout
- r - R Shiny:如何构建一个函数来在 R 中创建许多类似的 renderUI 选择器?