В моем приложении я сначала извлекаю категории продуктов с продуктами, теперь я хочу извлечь продукты из категорий продуктов, но я получаю следующую ошибку:
Property [products] does not exist on this collection instance.
Так я сначала получаю категории, а затем продукты
$productCategories = ProductCategory::with('products')->get(); //This works
$products = $productCategories->products; //Then this gives me error
Вот мои модели и миграции:
class Product extends FilterableModel
{
protected $table = 'products';
public function category()
{
return $this->belongsTo('App\Models\ProductCategory', 'productcategory_id');
}
class ProductCategory extends FilterableModel
{
protected $table = 'productcategories';
public function products()
{
return $this->HasMany('App\Models\Product', 'productcategory_id');
}
}
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('productcategory_id')->index();
$table->foreign('productcategory_id')->references('id')->on('productcategories')->onDelete('cascade')->onUpdate('cascade');
$table->string('title');
$table->string('slug');
$table->string('url');
$table->text('body')->nullable();
$table->string('image')->nullable();
$table->boolean('isVisible')->default(false);
$table->boolean('isFeatured')->default(false);
$table->integer('stock')->default(0);
$table->decimal('originalPrice', 5,2)->default(0.00);
$table->decimal('finalPrice', 5,2)->default(0.00);
$table->timestamps();
});
Schema::create('productcategories', function (Blueprint $table) {
$table->increments('id');
$table->string('title')->unique();
$table->string('slug')->unique();
$table->string('url')->unique();
$table->text('body')->nullable();
$table->string('image')->default(config('app.defaultImage'));
$table->string('icon')->default('fa fa-tag');
$table->boolean('isVisible')->default(false);
$table->boolean('isFeatured')->default(false);
$table->timestamps();
});