У меня проблема с пониманием в Laravel Eloquent.Я получил 4 таблицы в MySQL:
идентификаторы классов A и B одинаковы.Идентификаторы классов A и C одинаковы.Идентификатор класса A может быть либо в таблице B, либо в таблице C.
Переведено в модель ORM:
class Utilisateurs extends Model
{
public function as()
{
return $this->hasMany(A::class);
}
}
class A extends Model
{
public function utilisateur()
{
return $this->belongsTo(utilisateur::class);
}
public function b()
{
return $this->hasOne(B::class);
}
public function c()
{
return $this->hasOne(C::class);
}
}
class B extends Model
{
public function A()
{
return $this->belongsTo(A::class);
}
}
class C extends Model
{
public function A()
{
return $this->belongsTo(A::class);
}
}
Итак, у меня вопрос, есть ли способ доступа к таблице Bиз таблицы пользователя
Я знаю один способ сделать это.
public function getB(int $id)
{
$user = Utilisateur::find($id);
$bs = array();
if($user){
$user->a()-each(function($item){
$b = $item->b()->first();
if($b){$bs[] = $b}
})
}
return $bs;
}
Вы знаете другой способ сделать это?
Спасибо.
сообщение разрешено: лучший способ - использовать отношения: имеет много сквозных