Je pense que le like foire si tu as un espace entre chaque mots.
Du coup il faudrait sur ton $search fasse un explode et un like par mot.
$search = $this->request->data'Search']'key'];
$searchTerms = explode(' ', $search);
$searchTermBits = array();
foreach ($searchTerms as $term) {
$term = trim($term);
if (!empty($term)) {
$searchTermBits] = "Page.name LIKE '%$term%'";
}
}
$this->loadModel('Page');
$d'pages'] = $this->Page->find('all', array(
'conditions' => array(
'online'=>'1',
'type'=>'page',
'created <= NOW()',
'id > 1',
'OR' => array(
implode(' AND ', $searchTermBits),
'Page.content LIKE'=>'%'.$search.'%'
)
),
'fields'=> array('name','content','created','id','type')
));
Ta requête ressemblera à quelque chose comme ça à la fin :
....Page.name LIKE '%web%' AND Page.name LIKE '%travail%' AND Page.name LIKE '%dormir%'....
Je ne suis pas du tout sur de ce que je t'apporte là, ne m'en veux pas si ça ne fonctionne pas :D