Re: Searchable behavior on two models

2010-03-11 Thread Delberto
If you are talking about saving to more than one model with a saveAll
there is a patch here. I haven't tried it myself but you can check it
out

On Mar 10, 4:16 pm, Foroct forrestfraz...@gmail.com wrote:
 Well it looks like this behaviour can't successfully index two
 different models. Moving back to an old fashioned 'find'.

 Thanks all.

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-11 Thread Delberto
Sorry, here is the link --
http://code.google.com/p/searchable-behaviour-for-cakephp/issues/detail?id=19


On Mar 10, 4:16 pm, Foroct forrestfraz...@gmail.com wrote:
 Well it looks like this behaviour can't successfully index two
 different models. Moving back to an old fashioned 'find'.

 Thanks all.

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-10 Thread Foroct
Well it looks like this behaviour can't successfully index two
different models. Moving back to an old fashioned 'find'.

Thanks all.

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-10 Thread Jon Bennett
hi,

 Well it looks like this behaviour can't successfully index two
 different models. Moving back to an old fashioned 'find'.

I have the behaviour attached to multiple models, with no issues at
all, not with saving or with retrieving.

There's something amiss elsewhere.

Cheers,

J

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-08 Thread Foroct
All three models have the same $actAs array var $actsAs =
array('Searchable');

Each model saves its data properly using if ($this-Model-save($this-
data)) {

Where it falls apart is after the model data save and prior to the
search_index save.

I have tracked the issue down to something in my model.  I think I am
not setting up my associations correctly particularly in my Comment
model.

User - hasMany Post and hasMany Comment

Post - belongsTo User and hasMany Comment

Comment - belongsTo User and belongsTo Post and hasOne User

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-08 Thread Jon Bennett
 User - hasMany Post and hasMany Comment

 Post - belongsTo User and hasMany Comment

 Comment - belongsTo User and belongsTo Post and hasOne User

Last one looks wrong to me, I'd expect:

Comment belongsTo Post, User
Post belongsTo User
Post hasMany Comment
User hasMany Comment, Post

cheers,

j


-- 
jon bennett - www.jben.net - blog.jben.net

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-08 Thread Foroct
I thought so after I wrote it out, but when I removed the hasOne
association I still get the same result.  For some reason when I
create a post, the post gets added with no problem but the seachable
fails and kicks an error.

Query: INSERT INTO `search_index` (`model`, `association_key`, `data`,
`modified`, `created`) VALUES ('User', NULL, '', '2010-03-08
06:05:15', '2010-03-08 06:05:15')

For some reason even though the model I am updating is the Post model
when search_index attempts to add a record to its table the User model
always overrides Post.  Obviously since this is not the correct model
there is no association_key (the id of the post) so it again fails.

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-08 Thread cricket
Did you try logging $data? Or check that you're not doing $this-User-
save(...) instead of $this-Post-save(...)

This is how I have my models set up. You should ignore the 'fields'
array in the behavior settings. I made a bunch of modifications to it.

User:

public $hasMany = array(
'Post' = array(
'className' = 'Post',
'foreignKey' = 'user_id',
'dependent' = true
),
'Comment' = array(
'className' = 'Comment',
'foreignKey' = 'user_id',
'dependent' = true
)
);


Post:

public $hasMany = array('Comment');

public $belongsTo = array('User');

public $actsAs = array(
'Tag' = array(
'table_label' = 'tags',
'tag_label' = 'name',
'separator' = ','
),
'Searchable' = array(
'fields' = array('title', 'intro', 'body', 'tags')
),
'Sluggable' = array(
'translation' = 'utf-8',
'separator' = '_',
'label' = 'title',
'length' = 128,
'overwrite' = true
)
);


Comment:

public $belongsTo = array(
'Post',
'User'
);

public $actsAs = array(
'Tree' = array(
'parent' = 'parent_id',
'left' = 'lft',
'right' = 'rght'
),
'Searchable' = array(
'fields' = array('subject', 'body')
)
);

On Mar 8, 9:09 am, Foroct forrestfraz...@gmail.com wrote:
 I thought so after I wrote it out, but when I removed the hasOne
 association I still get the same result.  For some reason when I
 create a post, the post gets added with no problem but the seachable
 fails and kicks an error.

 Query: INSERT INTO `search_index` (`model`, `association_key`, `data`,
 `modified`, `created`) VALUES ('User', NULL, '', '2010-03-08
 06:05:15', '2010-03-08 06:05:15')

 For some reason even though the model I am updating is the Post model
 when search_index attempts to add a record to its table the User model
 always overrides Post.  Obviously since this is not the correct model
 there is no association_key (the id of the post) so it again fails.

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-08 Thread Foroct
I've looked at the array I am passing when the post gets entered and
its fine. I am saving correctly using $this-Post and the post data
saves to the post table fine.

My models look like this.

User
var $actsAs = array('Searchable' = array(
'fields' = array('username', 'first_name',
'last_name', 'location', 'email')
)
);

var $hasMany = array(
'Post' = array(
'className' = 'Post',
'foreignKey' = 'user_id',
'dependent' = true,
'conditions' = '',
'fields' = '',
'order' = Post.created DESC',
'limit' = '',
'offset' = '',
'exclusive' = '',
'finderQuery' = '',
'counterQuery' = ''
),
'Comment' = array(
'className' = 'Comment',
'foreignKey' = 'user_id',
'dependent' = true,
'conditions' = '',
'fields' = '',
'order' = '',
'limit' = '',
'offset' = '',
'exclusive' = '',
'finderQuery' = '',
'counterQuery' = ''
)
);

Post

var $actsAs = array('Searchable');

var $belongsTo = array(
'User' = array(
'className' = 'User',
'foreignKey' = 'user_id',
'conditions' = '',
'fields' = '',
'order' = ''
)
);

var $hasMany = array(
'Comment' = array(
'className' = 'Comment',
'foreignKey' = 'post_id',
'dependent' = false,
'conditions' = '',
'fields' = '',
'order' = '',
'limit' = '',
'offset' = '',
'exclusive' = '',
'finderQuery' = '',
'counterQuery' = ''
)

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-07 Thread cricket
What do the models look like? Especially the $actsAs arrays.

What does the data look like before you save it? Are you using
saveAll()?

Try adding some debugging calls in the behavior's beforeSave() 
afterSave() methods.

On Mar 6, 4:05 pm, Foroct forrestfraz...@gmail.com wrote:
 Continuing to work on this I have found that when I comment out my
 var $hasMany = array( in my User model, then this searchable plugin
 works fine.

  I tried to comment out the individual keys for this array but that
 did not help.  When I remove the hasMany array then I am able to
 successfully add content however, any queries that rely on that
 hasMany now fail.

 Still working on this, still holding out hope that someone can help...

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-06 Thread Foroct
Continuing to work on this I have found that when I comment out my
var $hasMany = array( in my User model, then this searchable plugin
works fine.

 I tried to comment out the individual keys for this array but that
did not help.  When I remove the hasMany array then I am able to
successfully add content however, any queries that rely on that
hasMany now fail.

Still working on this, still holding out hope that someone can help...

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Re: Searchable behavior on two models

2010-03-03 Thread Foroct
I am continuing to work on this as I want more than one model on my
site searchable.

It looks like the problem is occurring in the Searchable Behavior
setup function.

function setup($model, $settings = array()) {
$settings = array_merge($this-_defaults, $settings);
$this-settings[$model-name] = $settings;
$this-model = $model;
}

For some reason regardless of what model I am using it always gets
returned at the Users model.  Because of this the the id will only
populate correctly when adding a User and not when adding a Post (as
there is no new Post id to return).

Since I didn't hear back from anyone, I'm guessing not many people use
this searchable behavior. But as a n00b I would still appreciate any
insight people have as to why this may be failing.

Thanks

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en


Searchable behavior on two models

2010-03-01 Thread Foroct
I am using this behavior (http://code.google.com/p/searchable-
behaviour-for-cakephp/) on two different models (User and Post).
Searchable is working fine when I add a new user and search for a
user.  I manually populated a few rows of Post data and my search for
a post function works fine. However when I try to add a new post I get
the following errors.

Undefined index: User [APP/models/behaviors/searchable.php, line 77]
Invalid argument supplied for foreach() [APP/models/behaviors/
searchable.php, line 78] SQL Error: 1048: Column 'association_key'
cannot be null [CORE/cake/libs/model/datasources/dbo_source.php, line
525] Query: INSERT INTO `search_index` (`model`, `association_key`,
`data`, `modified`, `created`) VALUES ('User', NULL, '', '2010-02-28
12:04:11', '2010-02-28 12:04:11')

Query: INSERT INTO `search_index` (`model`, `association_key`, `data`,
`modified`, `created`) VALUES ('User', NULL, '', '2010-02-28
12:04:11', '2010-02-28 12:04:11')

Cannot modify header information - headers already sent by (output
started at /home/xxx/example.com/cake/basics.php:307) [CORE/cake/libs/
controller/controller.php, line 644]

So from what I can tell when I add a post something with the user
model is conflicting with my add posts function, as the Query stats
the model value is user and not post.  I would expect to see the
query values start with the 'Post' model then the post id and then
some data.

Is there something I need to do when using this behavior on two
different models?  Is there any reason that the behavior thinks I am
inserting User data when in fact I am inserting Post data?

Any help or suggestions would be appreciated.

Thanks.

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en