错误-尝试获取laravel中非对象的属性

错误-尝试获取laravel中非对象的属性,laravel,eloquent,laravel-5.7,Laravel,Eloquent,Laravel 5.7,当我从类别表中获取类别名称时,我遇到了问题。。 代码在这里 谢谢 public function viewProducts(){ $products = Product::get(); $products = json_decode(json_encode($products)); foreach($products as $key => $val){ $category_name = Category::where(['id'=>

当我从类别表中获取类别名称时,我遇到了问题。。 代码在这里

谢谢

 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'));
}
public function viewProducts(){
$products=Product::get();
$products=json_解码(json_编码($products));
foreach($key=>$val的产品){
$category\u name=category::where(['id'=>$val->category\u id])->first();
$products[$key]->category\u name=$category\u name->name;
}
回声“;印刷品($产品);模具;
返回视图('admin.products.view_products')->带有(compact('products');
}
错误例外(E_通知)
试图获取非对象的属性时,错误是直接的。您尚未获得$category\u name变量的任何对象,并且正在尝试访问name属性的值。没有定义,因为没有对象

添加一个简单的条件来像这样修复它

# Controller:
$data['category_name'] = $category_name;
$data['products'] = $products;
->withKeyName($data);

# Blade:
{{ $KeyName['category_name'] }}
{{ $KeyName['products'] }}

谢谢但是有一个问题。。我想获得一个类别名称此代码没有显示类别名称。@Muneeb dd($category_name)的结果是什么?有名称属性吗?公共函数viewProducts(){$products=Product::get();$products=json_decode(json_encode($products));foreach($products as$key=>$val){$category_name=category::where(['id'=>$val->category_id])->first();dd dd($category_name->name);if($category_name!=null){$products[$key]->category_name=$category_name->name;}}//echo”“;print_r($products);die;return view('admin.products.view_products')->with(compact('products');}dd($category_name->name);此代码打印类别名称,但我如何将其传送到blade。@Muneeb只需使用此
返回视图('admin.products.view_products',compact('products');
# Controller:
$data['category_name'] = $category_name;
$data['products'] = $products;
->withKeyName($data);

# Blade:
{{ $KeyName['category_name'] }}
{{ $KeyName['products'] }}