Здравствуйте, в вычислениях наткнулся на поля id и raw в полях со связями переменной $line. Можно разъяснить их различие?
1
Сообщений в теме: 2
#1
Отправлено 26 Май 2017 - 14:55
#2
Отправлено 26 Май 2017 - 15:52
если поле связи заполнено, то id равно raw. Если не заполнено, то raw = 0, а запрос id может вызвать ошибку. Я обычно использую raw для проверки заполнения поля, а id для вычислений и только после проверки заполнения поля. Пример:
if ($line['Связь']['raw']) $var = $line['Связь']['id'];
#3
Отправлено 26 Май 2017 - 17:56
ID берется из связанной записи, а raw - это сырое значение поля связи в БД. Если связь активна, то raw равно id, т.к. связь идет именно по полю id. Если же не активная - то raw либо равно 0, либо любому другому числу, не имеющему связи с реальной записью (например, после удаления связанной записи с данным id); ID же в этом случае неопределенно, т.е. такого ключа массива нет, т.к. нет связанной записи.
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных