Мне нужен какой-то совет по поводу чего-то, с чем я раньше не сталкивался, и, хотя это необходимый компонент проекта друга, я готов проявлять гибкость в том, как я должен это делать.
В их маленьком музее у них проблемы с кадрами и документами.Для нескольких наборов типов доноров существуют различные требования к донорским документам, и я пытаюсь сделать так, чтобы тип донора в классе доноров указывал на многих в другой таблице, в которой указаны необходимые документы этого типа донора и какого типа.из обязательных они являются (необязательными, но рекомендуются или обязательны для заполнения).
На данный момент это мои модели доноров:
- 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
В конце концов, помимо автоматического изменения статуса после того, как проект определит, что пожертвование имеет хотя бы один из каждого из необходимых документов, я хотел бы распечатать его на блейде, пока все требования не будут выполнены.
Если есть что-то, что я пропустил, я рад опубликовать это, я просто не уверен, как это сделать, и был бы признателен за любую помощь.Заранее спасибо.