操作
Backport(バックポート) #3399
完了ActivityDataTable::updateActivity() メソッドで画像付きのアクティビティが作成できない
開始日:
2012-09-14
期日:
進捗率:
100%
予定工数:
説明
Overview (現象)¶
ActivityDataTable::updateActivity() メソッドには、オプションとして file_id を含む配列を渡すことで画像付きのアクティビティを作成する機能があるが、このオプションを使用すると下記のようなエラーが発生してしまう。
SQLSTATE[23000]: Integrity constraint violation: 19 activity_image.mime_type may not be NULL, referer: http://sns.localhost:18080/sqlite/
Causes (原因)¶
$activityImage = new ActivityImage();
if (isset($image['file_id']))
{
$activityImage->setFileId($image['file_id']);
}
elseif (isset($image['uri']) && isset($image['mime_type']))
{
$activityImage->setUri($image['uri']);
$activityImage->setMimeType($image['mime_type']);
}
ActivityDataTable::updateActivity() メソッド内の images オプションを扱う上記のコードで、file_id をオプションに指定した画像について activity_image.mime_type の値が設定されておらず、activity_image テーブルの NOT NULL 制約によってエラーが発生している。
Way to fix (修正内容)¶
添付される画像の MIME タイプを file テーブルから取得し activity_image.mime_type にセットする。
操作