嗨我正在進行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