7912 Posts in 1355 Topics by 930 members
DataObjectManager Module
SilverStripe Forums » DataObjectManager Module » Automatically linking records (many_many)
Discuss the DataObjectManager module, and the related ImageGallery module.
Moderators: martimiz, UncleCheese, Howard, Sean, Ryan M., biapar, Willr, Ingo, swaiba, simon_w
|
Page:
1
|
Go to End | |
| Author | Topic: | 786 Views |
-
Automatically linking records (many_many)

18 June 2010 at 3:10am
Submission: http://pastie.org/private/0hrmsxz5p855dyacrsnnna
Author: http://pastie.org/private/hbwbxkknehakhw7ooh9i2qI open up a submission, hit the Authors tab and add a record
Now when i save this record it gets added to the total list of Authors, however it's not linked with the currently active Submission from which i was editing.Is there an option i'm missing or should i add an onBeforeWrite method in the Author class?
If so is there an easy way to link an Author to the Sumbission or should i manually write an INSERT query and execute this using the DB class? -
Re: Automatically linking records (many_many)

18 June 2010 at 3:18am
Did you check it off in the MMDOM?
-
Re: Automatically linking records (many_many)

18 June 2010 at 3:24am
What I'm looking for is adding the author record and linking it with the submission at the same time.
That way the user doesn't have to manually link the Author to the Sumbission once the Author has been added.When that's done I can use MMDOM->set_only_related which enforces only linked records to be shown.
The reason behind this is that list of Authors can be come quite huge over time, so narrowing them down to only related records would be a big step forward in usability. -
Re: Automatically linking records (many_many)

18 June 2010 at 3:58am
I did implement that on a recent project. Using onBeforeWrite().. I'll see if I can find a code snippet for you.
-
Re: Automatically linking records (many_many)

18 June 2010 at 4:03am
Here you go:
public function onAfterWrite()
{
parent::onAfterWrite();
if(isset($_POST['ctf'])) {
if(!isset($_POST['ctf']['childID']))
DB::query("INSERT INTO `YOUR_LINKING_TABLE` SET YourPageTypeID = ". $_POST['ctf']['sourceID'] . ", YourDataObjectID = $this->ID");
} -
Re: Automatically linking records (many_many)

18 June 2010 at 9:40am
Aye that's just what I was thinking about implementing, only using onBeforeWrite so you could check if it's a new record or an existing one.
Was hoping there would be a more elegant solution to this, but this will do the trick.
I'll have a go at this tomorrow.Cheers!
-
Re: Automatically linking records (many_many)

18 June 2010 at 9:55am
Problem is, at onBeforeWrite(), you don't have an ID, so that's why there's the clever way of evaluating if the record is new.
| 786 Views | ||
|
Page:
1
|
Go to Top |

