...
$sFile = $this->UploadAvatar($sFileTmp, $oUser);
$oUser->setProfileAvatar($sFile);
$this->Update($oUser);
...
В ответ получаю такую ошибку:SQL Error: Column 'user_id' cannot be null at /home/public_html/common/classes/modules/mresource/mapper/Mresource.mapper.class.php line 72
---
Array
(
[code] => 1048
[message] => Column 'user_id' cannot be null
[query] =>
INSERT INTO prefix_mresource
(
date_add,
user_id,
link,
type,
path_url,
path_file,
hash_url,
hash_file,
storage,
uuid
)
VALUES (
'2015-03-03 12:57:23',
NULL,
0,
1,
'@uploads/images/00/00/01/avatar/0u5e1d206a-1cfab955-9d80a270.png',
'@uploads/images/00/00/01/avatar/0u5e1d206a-1cfab955-9d80a270.png',
'a9fc20b9c54f6cfe1ce5792753b2161b',
'edecae965f2b8af2284cecdc4834a3ca',
'file',
'0u5e1d206a-1cfab955-9d80a270'
)
[context] => /home/public_html/common/classes/modules/mresource/mapper/Mresource.mapper.class.php line 72
)
Проблема в том, что только авторизованный пользователь и только себе можно изменить аватар? Подскажите.
18 комментариев
Как по другому загрузить аватар?
Зачем пишется движок если никому не нужен…
Но да ладно. Хоть версия движка и не называлась, с которой проблема возникла, но экстрасенсов вызывать не пришлось, я догадался. И поправил код, дабы решить проблему. Механизм работы с изображениями в 1.1 только-только доведен более-менее до нужного состояния. И да, для загрузки изображений (в т.ч. и аватар) используются иные (универсальные) методы. Но для обеспечения совместимости метод UploadAvatar() я поправил. Теперь это работает вообще одной строкой:
Т.е. профиль можно не обновлять. Это если вызывается из наследника модуля User. Либо универсальный вызов (откуда угодно):
Можно было сказать, что ты посмотришь код.
И т.д.
В итоге мне пришлось писать такие костыли:
Теперь UploadAvatar работает корректно?
Что насчёт UploadPhoto?
$this->hasAvatar();
$this->hasPhoto();
?
А какие проблемы? Что-то не работает? Что именно?
$this->hasAvatar();
$this->hasPhoto();
?