doctrine передает явным образом все имеющие параметры, а недостающие устанавливает как null. Хочу выяснить, в чём загвоздка?
Это дефолтное поведение доктрины, причем правильное поведение. Если у вас в аннотации над полями first_name и last_name не указано значение nullable - оно по умолчанию будет false, что на уровне бд запрещает вставку null значения. Если вы пишите руками sql запрос, не указывая эти поля при вставке, то при исполнении запроса вы должны получить предупреждение, что нет дефолтного значения для поля. Запись вставить, только на место first_name, last_name запишется пустая строка.
Поэтому у вас есть 2 вариант: либо добавить nullable=true, либо ставить дефолтное значение для поля в конструкторе. Другого не дано.