КОНТЕКСТ
Я управляю продуктами. Это обувной магазин. Я хотел бы предложить представление о других вариантах.
База данных имеет следующую форму:
Например, вы можете у меня есть кожаный ботинок (id 1), и есть 3 варианта этого ботинка: черный (id 1), коричневый (id 2) и серый (id 3).
Что я пытаюсь сделать do - построить отношение Laravel, чтобы из одного варианта можно было получить его братьев и сестер. Вот как это выглядит в базе данных в соответствии с примером, который я упомянул.
SHOE
id
====
1
SHOE_VARIANT
id shoeId colorId
===================
1 1 1
2 1 2
3 1 3
...
8 2 5
9 3 2
10 3 4
В этом случае, если пользователь просматривает черный вариант (id 1), я могу показать sh ему 2 других варианта (коричневый, id 2 и серый, id 3).
ВОПРОС
Как я могу построить отношение Laravel для извлечения братьев и сестер из родительского идентификатора и убедитесь, что сама текущая запись не включена?
ЭКСПЕРИМЕНТЫ
Я уже пытался построить отношения, как показано ниже, но текущая запись сам по себе включен, и я не могу понять, как исключить саму запись, потому что я не нашел, как получить текущий идентификатор записи.
// app/ShoeVariant.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ShoeVariant extends Model {
public function siblings() {
return $this->hasMany("App\ShoeVariant", "shoeId", "shoeId");
}
}
Это означает:
Для текущего варианта обуви, получите варианты обуви, которые соответствуют, зная, что вы должны соответствовать внешнему столбцу с именем «shoeId» и локальному столбцу с именем «shoeId»
Так что, если 2 варианта обуви имеют общий тот же столбец "shoeId", эта работа s. Застрял в исключении текущей записи из этих результатов.