Hi Я работаю над проектом обучения laravel. У меня проблема с моделями и отношениями, когда я пытаюсь получить имя каждой категории продукта.
Вот моя Модель продуктаКатегория отношений в laravel Undefined property: 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-> без знака()
Категории: идентификатор, имя
и вот код я использую, чтобы получить $ продукты
$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' является объектом/stdClass, а не экземпляром вашей модели« Product ». Можете ли вы опубликовать код, который вы использовали для получения переменной '$ products'? – Jonathon