You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Привет. Есть такой вопрос, у меня есть 2 модели Атрибутов, одна: Attribute, другая AttributeValue. Attribute: это модель для названия атрибутов, а AttributeValue это значения для данных атрибутов. Вопрос вот в чем, могу ли я в ресурсе подать эти атрибуты через этот пакет? Чтобы была иерархия как у категорий (Название атрибута -> значения ) (по типу как: главная категория -> дочерние) ? У меня в ресурсе продукта, в который я хочу добавить данную иерархию есть отношение:
public function attributes_values() { return $this->belongsToMany(AttributeValue::class, 'product_attribute_values'); }
А вот модель Attribute:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Attribute extends Model
{
protected $guarded = [];
public function attributeable()
{
return $this->morphTo();
}
public function categories()
{
return $this->morphedByMany(Category::class, 'attributeable');
}
public function values()
{
return $this->hasMany(AttributeValue::class);
}
public function getProductsExistsAttribute()
{
// dd($this->categories()->where('slug', request()->segment(2))->has('products')->whereHas()->exists());
return $this->values()->has('products')->exists();
}
}
Модель AttributeValue:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AttributeValue extends Model
{
protected $guarded = [];
protected $appends = ['products_exists'];
public function attribute()
{
return $this->belongsTo(Attribute::class);
}
public function products()
{
return $this->belongsToMany(Product::class, 'product_attribute_values');
}
public function getProductsExistsAttribute()
{
$category = request()->segment(2) ? \App\Category::where('slug', request()->segment(2))->first() : null;
if($category) {
return $this->products()->whereHas('categories', function($q) use ($category) { $q->whereIn('slug', $category->children->pluck('slug'))->orWhere('slug', $category->slug); })->exists();
}
}
}
В данный момент в ресурсе продукта я это делаю через SelectPlus пакет, в скобках пишу значение атрибута, чтобы было ясно, в продукте мне нужно выбирать именно значения атрибутов.
Uh oh!
There was an error while loading. Please reload this page.
Привет. Есть такой вопрос, у меня есть 2 модели Атрибутов, одна: Attribute, другая AttributeValue. Attribute: это модель для названия атрибутов, а AttributeValue это значения для данных атрибутов. Вопрос вот в чем, могу ли я в ресурсе подать эти атрибуты через этот пакет? Чтобы была иерархия как у категорий (Название атрибута -> значения ) (по типу как: главная категория -> дочерние) ? У меня в ресурсе продукта, в который я хочу добавить данную иерархию есть отношение:
public function attributes_values() { return $this->belongsToMany(AttributeValue::class, 'product_attribute_values'); }
А вот модель Attribute:
Модель AttributeValue:
В данный момент в ресурсе продукта я это делаю через SelectPlus пакет, в скобках пишу значение атрибута, чтобы было ясно, в продукте мне нужно выбирать именно значения атрибутов.
Подскажите пожалуйста, как можно это сделать через nova nested tree attach many? Заранее спасибо.
The text was updated successfully, but these errors were encountered: