cakephp 3: запекание добавляет нежелательное правило $rules-›isUnique(['email'])

Я запекаю таблицу, которая сохраняет все попытки входа в систему от моих клиентов, и по какой-то причине команда испечь добавляет это правило.

$rules->isUnique(['email'])

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

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


person Josexato    schedule 29.08.2018    source источник
comment
Я думаю, что это строка, которая решает сделать все поля электронной почты уникальными rel="nofollow noreferrer">github.com/cakephp/bake/blob/   -  person Josexato    schedule 29.08.2018
comment
Другими словами, это ограничение всегда будет добавляться, когда поле называется email. Вы можете изменить это имя на uemail, и все будет работать так, как вы ожидаете, или просто удалить ограничение после запекания.   -  person Antoniossss    schedule 29.08.2018
comment
Судя по внешнему виду кода, это похоже на предполагаемое поведение. Запекание кода предназначено для ускорения разработки, но ничто не мешает вам впоследствии модифицировать сгенерированный код, чтобы он работал так, как вам нужно. Как говорит @Antoniossss, просто удалите правило после выпечки.   -  person drmonkeyninja    schedule 29.08.2018


Ответы (1)


Такое поведение запекания при добавлении $rules->isUnique() для полей, которые имеют имя email, является «функцией». (Но это очень раздражает, когда вы не хотите, чтобы электронное письмо было уникальным.)

Поздравляем с отслеживанием вашей проблемы!

Лучшее решение — закомментировать вызывающую ошибку строку кода в файле XXXsTable.php или, если вы точно уверены, что она вам никогда не понадобится, просто удалить строку.

Изменение имени поля на что-то отличное от email, вероятно, не очень хорошая идея, поскольку, вероятно, у вас была веская причина, по которой вы выбрали это имя в первую очередь.

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

person Annabel    schedule 01.09.2018
comment
Спасибо за понимание, я думаю, что выпечка действительно отличный инструмент, и теперь я понимаю, что цель состоит в том, чтобы легко запустить шаблон, а не экспертную систему для всех возможных ситуаций, спасибо! - person Josexato; 03.09.2018