0
내 사용자가 "아바타"필드에 대한 이미지를 업로드 할 수있게 해주는 프로젝트가 심포니에 있습니다. 나는 아래의 스키마를 가지고있는 테이블 "확장"하는 방법에 대한 많은 글 발견 :Symfony Add Avatar 필드를 sfGuardUser 모델
Member:
inheritance:
type: column_aggregation
extends: sfGuardUser
columns:
idmember: { type: integer }
birthday: { type: date }
avatar: { type: string(255) }
bio: { type: string(255) }
열이 잘 테이블에 추가하지만, 얻을를 나는 sfWidgetFormInputFileEditable
에 위젯을 변경 갈 때 휴식.
$file_src = $this->getObject()->getAvatar();
if ($file_src == '')
{
$file_src = 'default_image.png';
}
$this->widgetSchema['avatar'] = new sfWidgetFormInputFileEditable(array(
'label' => ' ',
'file_src' => '/uploads/avatar/'.$file_src,
'is_image' => true,
'edit_mode' => true,
'template' => '<div>%file%<br />%input%</div>',
));
양식의 기능을 "저장":
This form is multipart, which means you need to supply a files array as the bind() method second argument.
if($this->isModified())
{
$uploadDir = sfConfig::get('sf_upload_dir');
$thumbnail = new sfThumbnail(150, 150);
$thumbnail2 = new sfThumbnail(800, 800);
if($this->getAvatar())
{
$thumbnail->loadFile($uploadDir.'/avatar/'.$this->getAvatar());
$thumbnail->save($uploadDir.'/avatar/thumbnail/'. $this->getAvatar());
$thumbnail2->loadFile($uploadDir.'/avatar/'.$this->getAvatar());
$thumbnail2->save($uploadDir.'/avatar/big/'. $this->getAvatar());
}
}
, 나는이 오류 메시지를 여기에 Form.class 파일입니다
양식을 '묶는'장소를 볼 수 있습니까? 그건 그렇고,'extend'가 sfGuardUser에 가치를 더하는 가장 좋은 방법은 아니라고 생각합니다. sfGuardUser에 프로파일을 추가 할 수있는 내장 기능을 살펴 보았습니까? ([this] (http://jmather.com/2010/10/09/customize-sfguarduser-sfdocrineguard/) 또는 [this] (http://trac.symfony-project.org/browser/plugins/sfGuardPlugin/ 참조) 분기/1.3/README # L225)) – j0k
j0k 답장을 보내 주셔서 감사합니다. sfGuardUser에 "프로필"을 추가하려고 시도했지만 테이블을 설정할 수 있었지만 추가 필드를 "등록"양식에 추가하여 사용자에게 매끄럽게 표시하고 동일한 필드에 모두 표시되도록하는 방법 형태? 나는이 튜토리얼 [여기] (http://symfony.com/blog/call-the-expert-customizing-sfdoctrineguardplugin)을 따라 시도했지만 백엔드와 만 작동하는 것으로 보인다. 프론트 엔드 "등록"페이지가 아닙니다. sfGuardUserForm.class.php에 "아바타"위젯을 추가하려했지만 양식을 제출할 때 아무 값도 저장하지 않습니다. – djcloud23
'sfGuardRegisterForm'을 사용하면'sfGuardUserAdminForm'을 확장하는'BasesfGuardRegisterForm'을 확장합니다. 그리고 여러분의 프로필은'sfGuardUserAdminForm' 안에 정의되어 있습니다. 그래서 그것은 효과가있을 것입니다. – j0k