Как отобразить роль Назначение, соответствующую участнику - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь отобразить роль Назначения, соответствующую участнику,

Что я пытаюсь достичь,

Chairman |
         |
         President - Heading
          - member name
         Vice President - Heading
          - member name

У меня есть председатель с подчиненными, которые разделены по назначениюID,

Для достижения этой цели я создал 3 таблицы:

statechairmen

id | first_name | from | to  

1 | Chairman | 2019 | 2020 

statemembers

id | first_name | chairman_id | designation_id 

  1 | Member 1 | 1 | P (inherted from designation_code of statedesignation)

  1 | Member 2 | 1 | VP (inherted from designation_code of statedesignation)

указание состояния

id | designation_code | designation_name | designation_desc

  1 | P | President | President Description. 
  1 | VP | Vice President | President Description. 

Может ли дизайн базы данных быть лучше ??,Любые другие предложения

Я хотел бы отобразить список членов, за которым следует их обозначение:

Я попытался заказать стол, но я не могу ввестиобозначение для соответствующих членов,

Мой контролер для ввода штата членов под председательством

$statemembers = StateChairman::find($id)->statemembers()->orderBy('designation_id')->get();
dd($statemembers);

Я получаю результат- Список всех членов государства -

But when I try this 
$statedesignation = Statemembers::find($id)->statedesignations()->get();
dd($statedesignation);

Для этого я получаю результат только с идентификатором 1 в обозначении штата, то есть Президент, вице-президент игнорируется,

Я получаю только обозначение President , поскольку find ($ id) вызывает только 1 или соответствующий идентификатор

Модель:

Председатель государства:

    class Statechairman extends Model
{
    public function statemembers(){
        return $this->hasMany('App\Statemembers','chairman_id','id');
    }
}

StateMembers:

class Statemembers extends Model
{
    public function statechairman(){
        return $this->belongsTo('App\Statechairman','chairman_id','id');
    }

State Обозначения:

 public function statemembers(){
    return $this->hasMany('App\Statemembers');

Я не знаю, как выполнить вышеуказанное требование,

Я также хотел удалить designation_id из таблицы statemembers и добавить designation_name и отображать его прямо на странице.Обновление таблицы примерно так:

id | first_name | chairman_id | designation_id 

  1 | Member 1 | 1 | President
  2 | Member 2 | 1 | Vice President

Но это не очень хорошая практика.

Пожалуйста, предоставьте мне некоторые идеи по вышеуказанному вопросу.

1 Ответ

0 голосов
/ 25 февраля 2019

С моей точки зрения, вы должны использовать полиморфные отношения или has-many-through отношения

Laravel Polymorphic

Надеюсь, это поможет:)

...