Красноречивые отношения и условная проверка - PullRequest
0 голосов
/ 17 сентября 2018

Мне нужен какой-то совет по поводу чего-то, с чем я раньше не сталкивался, и, хотя это необходимый компонент проекта друга, я готов проявлять гибкость в том, как я должен это делать.

В их маленьком музее у них проблемы с кадрами и документами.Для нескольких наборов типов доноров существуют различные требования к донорским документам, и я пытаюсь сделать так, чтобы тип донора в классе доноров указывал на многих в другой таблице, в которой указаны необходимые документы этого типа донора и какого типа.из обязательных они являются (необязательными, но рекомендуются или обязательны для заполнения).

На данный момент это мои модели доноров:

  • id
  • lastName
  • firstName
  • donorType
  • docStatus

И отношение к модели donorRequiredDocs:

public function donorRequiredDocs(){
        return $this->hasMany('App\donorRequiredDocs', 'donorTypeID', 'donorType');
    }

Моя таблица donorRequiredDocsустанавливается следующим образом:

  • id
  • donorTypeID
  • requireType (необязательно, обязательно)
  • docType (письмо, соглашение и т. д. - но вINT, который ссылается на другую таблицу)

Теперь скажите, что у меня есть этот пример:

Я - донор, и мой donorType равен 1, и для 1 требуются следующие документы:

  • Соглашение
  • Письмо одобрения
  • Требуется нотариус SEM

и рекомендуется, но не обязательно иметь:

  • Фотография пожертвования
  • Выписка со счета

И я иду, чтобы пожертвовать объект музею, после того, как они выбирают мое имя и запись для нового пожертвования, которое будет использовать мою таблицу доноров id, чтобы вытащитьдо информации о модели, которую они имеют на меня.Я хочу, чтобы запись о пожертвовании docStatus оставалась равной NULL или 0 до тех пор, пока, по крайней мере, запись о пожертвовании не будет связана с одним из трех указанных выше типов документов, прежде чем ее можно будет установить на 1.

В этом случае модель пожертвования настраивается следующим образом: - id - title - donorID

public function documents(){
        return $this->hasMany('App\donationAttachment', 'donation_id', 'id');
    }

А модель donationAttachment настраивается следующим образом:

  • id
  • title
  • docType (который использует ту же систему нумерации, что и donorRequiredDocs ссылка на поле таблицы)
  • donation_id
  • creation_at
  • updated_at

В конце концов, помимо автоматического изменения статуса после того, как проект определит, что пожертвование имеет хотя бы один из каждого из необходимых документов, я хотел бы распечатать его на блейде, пока все требования не будут выполнены.

Если есть что-то, что я пропустил, я рад опубликовать это, я просто не уверен, как это сделать, и был бы признателен за любую помощь.Заранее спасибо.

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