У меня есть форма, которая отправляет значения в контроллер следующим образом:
public function postFormUpdate(ProjectUpdateRequest $request)
{
$inputs = $request->all();
$project = $this->projectRepository->update($inputs['project_id'],$inputs);
//...
}
Репозиторий проекта выполняется следующим образом:
public function update($id, Array $inputs)
{
return $this->save($this->getById($id), $inputs);
}
private function save(Project $project, Array $inputs)
{
// Nullable
if (isset($inputs['project_type'])) {$project->project_type = $inputs['project_type'];}
if (isset($inputs['activity_type'])) {$project->activity_type = $inputs['activity_type'];}
...
}
Моя проблема в том, еслиТип_проекта равен нулю в поле формы (тип проекта вводить не нужно или его можно удалить), тогда isset ($ input ['project_type']) будет ложным и обновление не будет запущено.
То, что я хочу, - это если пользователь настроил тип проекта, а затем хочет изменить его и установить его на ноль, например, он не работает.Я использую isset, потому что иногда я обновляю только одно поле, и я не хочу, чтобы это генерировало ошибку, потому что оно не было частью входных данных и не было установлено.
Что я могу сделать, это использовать:
if (isset($inputs['project_type']) || is_null($inputs['project_type'])) {$project->project_type = $inputs['project_type'];}
Но я смотрю, есть ли более элегантный способ сделать это.
Спасибо.