On Feb 28, 2011, at 14:23, theweirdone wrote:
> I've changed my code, here's the new controller:
>
> function addAll($id = null) {
> if (!$id) {
> $this->Session->setFlash(__('Invalid show id entered', true));
> //$this->redirect('/episodes');
> }
> $show = $this->requestAction('/shows/getTvById/'.$id); //gets the
> tv.com url
> $episodes = $this->scrape($show, $id); //scrapes tv.com for the show
> $this->set('episodes', $episodes); //sets $TVshowInfo for the view
> if($this->Episode->saveAll($episodes['Episode'])){
> $this->Session->setFlash(__($count.' episodes were saved.',
> true));
> }
> }
>
> I've also updated the scraper to return the array such as in the manual:
>
> Array
> (
> [Episode] => Array
> (
> [0] => Array
> (
> [name] => Stowaway
> [number] => 17
> [description] => No synopsis available. Write a synopsis.
> [date] => 3/18/2011
> [show_id] => 11
> )
>
> [1] => Array
> (
> [name] => Os
> [number] => 16
> [description] => While Walter attempts to figure out a
> way to stop the spread of vortexes on This Side, the team investigate a
> series of thefts committed by criminals who can control gravity.
> [date] => 3/11/2011
> [show_id] => 11
> )
> )
>
> So now the saveAll() function should be working I think. Yet it still doesn't
> save anything to the database.
> Should I put in a for loop and save each episode individually using the
> save() function? Is there any reason that would be more likely to work?
Well.... saveAll() is described as being for saving one main record and
multiple related records. Here, you're trying to save multiple unrelated
records. I don't know if saveAll() is meant to work in that case, so maybe a
for loop is the way for now after all. I hate recommending that, because I know
a single multi-record SQL INSERT statement is more efficient than multiple
single-record INSERTs, but I don't know how to do it in CakePHP. Then again,
your previous code checked the validity of each save and counted up the number
of successful saves, implying you expected some of them not to be successful; a
single multi-record INSERT would either completely succeed or completely fail,
so that may not be what you want anyway.
--
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others
with their CakePHP related questions.
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php