[TYPO3-mvc] saving file reference with FAL and ext base

Federico Bernardin typo3list at bernardin.it
Thu Jul 4 10:59:17 CEST 2013


Hi,
I have this situation:
A user can save some images from frontend and I want to use FAL to save file and link this file with a specified Extbase model object myobject.
Myobject is a model with images property:

/**
	 * images
	 *
	 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
	 */
	protected $images;

/**
	 * Constructor.
	 */
	public function __construct() {
		$this->initStorageObjects();
	}

	/**
	 * Initializes all \TYPO3\CMS\Extbase\Persistence\ObjectStorage properties.
	 *
	 * @return void
	 */
	protected function initStorageObjects() {
		$this->images = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
	}

	/**
	 * Adds a Comment.
	 *
	 * @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $image Add a image.
	 *
	 * @return void
	 */
	public function addImage(\TYPO3\CMS\Extbase\Domain\Model\FileReference $image) {
		$this->images->attach($image);
	}

	/**
	 * Removes a Comment.
	 *
	 * @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $imageToRemove The Image to be removed.
	 *
	 * @return void
	 */
	public function removeImage(\TYPO3\CMS\Extbase\Domain\Model\FileReference $imageToRemove) {
		$this->images->detach($imageToRemove);
	}


My TCA has an images field as below:

		'images' => array(
			'exclude' => 0,
			'label' => 'images',
			'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('images')
		),

When I save file on storage all works ok, but when I link image (saved) to myobject doesn't work. After myobject is persisted in sys_file_reference there's one row (i linked only one image) but uid_local, table_local, fieldname are empty.

If I use normal back-end to create the object (myobject) all works fine, images are linked correctly, so I suppose TCA works fine.

So I decided to create my Model for FileReference (extends original extbase FileReference) and I added uidLocal, tableLocal and FieldName properties (setter and getter methods too), I added typoscript to map properties with database fields, and uid_local and table_local (setted by controller) are written into db row. But fieldname is not defined into TCA of sys_file_reference and so it cannot be persisted.

The images field into myobject table is not setted with number of images linked with sys_file_reference too.

I don't succeed to find a solution, can someone help me?

Thanks
Federico



More information about the TYPO3-project-typo3v4mvc mailing list