Laravel 11 Попытка прочитать свойство «имя» в intPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel 11 Попытка прочитать свойство «имя» в int

Сообщение Anonymous »

Laravel 11! Когда я пытаюсь перечислить продукты в шаблоне блейда, я получаю сообщение об ошибке «Попытка прочитать свойство «имя» в int»
EDIT: конечно, я также отправить экспорт таблицы продуктов, внешние ключи определены.
В шаблоне блейда я передаю данные следующим образом

@foreach($products as $product)

{{ $product->name }}
{{ $product->category->name }}
{{ $product->subcategory->name }}

@endforeach


Мой ProductsController.php
public function create(): View
{
$products = Products::with(['category', 'subcategory'])->get();
return view('products', compact('products'));
}

Модели продуктов, категория, подкатегория
class Products extends Model
{
use HasFactory;

protected $table = 'products';

public function category(): BelongsTo
{
return $this->belongsTo(Category::class);
}

public function subcategory(): BelongsTo
{
return $this->belongsTo(SubCategory::class);
}
}

class SubCategory extends Model
{
use HasFactory;

protected $table = 'subcategory';

public function products(): HasMany
{
return $this->hasMany(Products::class, 'subcategory', 'id');
}

public function category(): BelongsTo
{
return $this->belongsTo(Category::class, 'id_category', 'id');
}
}

class Category extends Model
{
use HasFactory;

protected $table = 'category';

public function subCategories(): HasMany
{
return $this->hasMany(SubCategory::class, 'id_category');
}

public function products(): HasMany
{
return $this->hasMany(Products::class, 'category', 'id');
}
}

Я в растерянности, я действительно не знаю, что мне делать. Я на 90% уверен, что допускаю ошибку где-то в моделях, при определении связей между таблицами. Но я не уверен на 100%. Хуже всего то, что ни Google Gemini, ни ChatGPT не решили мою проблему, несмотря на 2 часа попыток.
CREATE TABLE `ala_products` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`slug` varchar(255) NOT NULL,
`category` int(10) unsigned NOT NULL,
`subcategory` bigint(20) unsigned NOT NULL,
`color_1` varchar(10) NOT NULL,
`color_2` varchar(10) NOT NULL,
`min_size` smallint(6) NOT NULL DEFAULT 0,
`max_size` smallint(6) NOT NULL DEFAULT 0,
`order_x` smallint(6) NOT NULL DEFAULT 0,
`active` enum('0','1') NOT NULL DEFAULT '1',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ala_products_category_foreign` (`category`),
KEY `ala_products_subcategory_foreign` (`subcategory`),
CONSTRAINT `ala_products_category_foreign` FOREIGN KEY (`category`) REFERENCES `ala_category` (`id`),
CONSTRAINT `ala_products_subcategory_foreign` FOREIGN KEY (`subcategory`) REFERENCES `ala_subcategory` (`id`)

public function up(): void
{
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name', 255);
$table->string('slug', 255);

$table->unsignedInteger('category');
$table->foreign('category')->references('id')->on('category');

$table->unsignedBigInteger('subcategory');
$table->foreign('subcategory')->references('id')->on('subcategory', 'id');

$table->string('color_1', 10);
$table->string('color_2', 10);
$table->smallInteger('min_size')->default(0);
$table->smallInteger('max_size')->default(0);
$table->smallInteger('order_x')->default(0);
$table->enum('active', ['0', '1'])->default('1');
$table->timestamps();
});
}


Подробнее здесь: https://stackoverflow.com/questions/788 ... ame-on-int
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»