Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Archive /

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

Text field bug


Reply


2 Posts   1036 Views

Avatar
Danix

Community Member, 1 Post

20 January 2008 at 11:28pm

Edited: 21/01/2008 2:59am

Hello, I have a problem adding a new

TextField

to a page. I have the following code:

PortofoliuPage.php

<?php


class PortofoliuPage extends Page {


static $db = array(


);


static $has_one = array(


'Photo' => 'Image',


'Desc' => 'Text'


);


   

function getCMSFields() {


$fields = parent::getCMSFields();


$fields->addFieldToTab("Root.Content.Images", new ImageField('Photo'));
$fields->addFieldToTab("Root.Content.Images", new TextField('Desc'));
   
return $fields;
}
}

class PortofoliuPage_Controller extends Page_Controller {
   
}
?>

I flush the database and the admin panel. In the admin panel I add a PortofoliuHolder page. In the PortofoliuHolder page I add a PortofoliuPage.

I add the details for PortofoiuPage, including an Photo and a Desc. I press the Save and Publish button. Now the problem:

When I refresh the page, the information I entered in the Desc field dissapears
(The photo don't)

I looked in the database in the PortofoliuPage table, and there are two columns there: an id for the photo and an id for the Desc (0 value).

Note that I tried to drop the entire database and create it again.

A bug in the CMS? Am I mistaking? Please help me!

Thanks,
Danix
[url=http://www.redarts.ro/]redarts[/url]

Avatar
dio5

Community Member, 501 Posts

20 January 2008 at 11:47pm

You're making a mistake.

if you use a $has_one relationship, you should make another object at the other side too.
If you want only one field, the 'desc', you have to add it to the $db array.

Like:

static $db = array("Desc" => "Text" );

The image is in a $has_one relationship because it resides in a different table, the file-table.

But I think it would be better to make a $has_many relationship and create a separate $Project DataObject.

I suggest you read through some more documentation:

http://doc.silverstripe.com/doku.php?id=datamodel#Relations
http://doc.silverstripe.com/doku.php?id=tutorial:5-dataobject-relationship-management

Hope this helped.