2013-09-24 2 views
0

Я пытаюсь запустить полнотекстовый поиск по некоторым данным, хранящимся в mongoDb с использованием Lithium.Команда MongoDB running в литии

Вот как я пытаюсь сделать это в моем контроллере:

$mongodb = Connections::get('default')->connection; 
$results = Page::connection()->connection->command(array("text" => "Page", 'search' => "term")); 

Я также попытался:

$results = Page::connection()->connection->command(array("text" => "Page", 'search' => "term")); 

Однако оба этих возвращения: Фатальная ошибка: Вызов к член функции command() на не-объекте

Что я делаю неправильно?

EDIT:

Я хотел бы добавить, что простой запрос на странице работает просто отлично. Например:

$results = Page::find('all'); 

Возвращает массив со всеми документами в коллекции страниц, как и следовало ожидать.

UPDATE 2:

я бегу все это от сервера WAMP. Я попытался сегодня запустить его с сервера linux, но все же получил ту же самую точную ошибку. Я действительно в тупике от этого и могу использовать некоторую помощь. У кого-нибудь есть идеи?

здесь является модель Page как он сидит прямо сейчас:

<?php 
namespace app\models; 

use lithium\data\Connections; //added during debugging 
use lithium\data\source\MongoDb; //added during debuging 

class Page extends \lithium\data\Model { 

} 
?> 

Вот мое подключение:

Connections::add('default', array(
     'type' => 'MongoDb', 
     'host' => '192.168.48.128', 
     'database' => 'my_collection' 
)); 
+0

Что такое 'Страница'? Расширяет ли он 'lithium \ data \ Model'? Я так полагаю. И где ваша литиевая установка? Github? Композитор? У вас есть номер версии? – rmarscher

+0

Страница - это простая модель. например: ' ' Не уверен, что на номер версии, но я просто скачал его из GitHub 2 дня назад. – user2566987

ответ

0

Получил помощь, чтобы понять это ... размещение здесь для других ссылок.

правильный способ вызова это:

$conn = Model::connection(); 
$db = $conn->selectDB('db'); 
$result = $db->command(array(... 

отлично работает, когда сделано таким образом.

2

Я делаю это так:

$plugins = Plugins::connection()->connection->command([ 
    'text' => 'plugins', 
    'search' => $this->request->query['q'] 
]); 
return compact('plugins'); 

так я Рекомендую ли вы проверить свою конфигурацию - ваша модель обычно возвращает другие данные? Правильно ли конфигурация соединения?

+0

Да, моя модель работает, возвращая простые находки просто отлично. Этот код запускается с вашего контроллера или из вашей модели? Есть ли какой-либо специальный импорт/пространство имен/использование, которое вы должны использовать, чтобы заставить его работать? – user2566987

+0

Любой шанс, который вы можете сообщить мне, как ваша модель была настроена в вашем примере? Вам нужно было сделать что-нибудь особенное в файле ваших подключений? Любые «использование» объявлений в вашем контроллере, которые необходимы? – user2566987

Смежные вопросы