嗨我正在进行laravel培训项目。当我尝试获取每个产品类别名称时,我遇到了模型和关系问题。
这里是我的产品型号laravel中的类别关系未定义的属性:stdClass ::
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
public function category()
{
return $this->belongsTo('App\Category');
}
}
和我的分类模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
protected $table = 'categories';
public function products()
{
return $this->hasMany('App\Product');
}
}
当我试图让类别名称为这样
@foreach($products as $product)
<tr>
<td>{{ $product->id }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->category->name }}</td>
</tr>
@endforeach
每一个产品,而我运行页面出现此错误
Undefined property: stdClass::$category (View: /var/www/html/projectname/resources/views/my/products/index.blade.php)
谁能告诉我是什么原因导致了这个错误?
更新
这里是表结构
产品:编号,名称,category_id->无符号()
类别:ID,名称
,这里是我用来获取$产品代码
$user_id = Auth::user()->id;
$products = DB::table('products')->where('user_id', $user_id)->paginate(5);
return view('my.products.index')->withProducts($products);
显示您的产品和类别的表结构,也许问题在不正确的外键 –
@OdinThunder我更新后看到表结构。并返回给我 –
您的错误消息表明'$ product'是一个object/stdClass,而不是您的'Product'模型的一个实例。你可以发布你用来获取'$ products'变量的代码吗? – Jonathon