Отношения Laravel между несколькими таблицами не удаются - PullRequest
0 голосов
/ 16 мая 2018

У меня есть следующие табели

проверка таблицы

 id
 name ...

тип настройки таблицы

id
name
level //references id on table check

настройки табуляции

type, //references type on table setting type
name
value

Так что в основномя хотел бы вернуть все проверки с настройками

Так что у меня есть в моих моделях

1.Проверить модель // Проверка таблицы ссылок

    public function settingsval(){
       return $this->hasMany('App\AppSettingTypes','name','name.setting');
   }

На моем AppSettingTypes //тип настройки таблицы ссылок

    public function settings(){
       return $this->hasMany('App\AppSetting','id','type');
   }

ТАК на моем контроллере просто делаю

CheckModel::with('settingsval')

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

Что может бытьнеправильно?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Если level столбец таблицы setting type содержит ссылку на контрольную таблицу, тогда ваше отображение будет

public function settingsval(){
   return $this->belongsTo('YourCheckModelname','level');
}

. И в таблице check модель имеет отображение, подобное

public function settingtype(){
       return $this->hasMany(\App\AppSettingTypes::class);
    }

Точно так же, если type столбец таблицы setting содержит ссылку на таблицу типов настроек, тогда ваше отображение будет похоже на

 public function settings(){
       return $this->belongsTo('YourSettingTypeModelname','type');
    }

, а в модели setting type отображение будет похоже на

public function settingsType(){
           return $this->hasMany('YourSettingModelName'::class);
        }

Тогда вы должны сделать в вашем контроллере

CheckModel::with('settingsval') //get all settingvalues
0 голосов
/ 16 мая 2018

Если level столбец таблицы setting type содержит ссылку на контрольную таблицу, тогда ваше отображение будет примерно таким:

public function settingsval(){
   return $this->hasMany('App\AppSettingTypes','level','id');
}

имеет много определений

hasMany($related, $foreignKey, $localKey)

Было бы лучше, если бы вы могли использовать лучшее соглашение об именах для связанных столбцов, например check_id вместо level и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...