Moloquent без Laravel

298
05 июля 2017, 00:08

Хочу работать с MongoDB через Moloquent без Laravel. Установил через composer require moloquent/moloquent, создал index.php, написал следующий код:

<?php
require_once( __DIR__ . '/vendor/autoload.php' );
use Illuminate\Database\Capsule\Manager as Capsule;
// use Illuminate\Events\Dispatcher;
// use Illuminate\Container\Container;
use Moloquent\Eloquent\Model as Eloquent;
$mongoconfig = [
    'driver'   => 'mongodb',
    'host'     => 'localhost',
    'port'     => 27017,
    'database' => 'test',
    'username' => 'mongoadmin',
    'password' => '12345678'
    'options' => [
        'db' => 'admin'
    ]
];
$capsule = new Capsule;
$capsule->getDatabaseManager()->extend( 'mongodb', function( $config )
{
    return new \Moloquent\Connection( $mongoconfig );
});
class User extends Eloquent {
    // protected $connection = 'mongodb';
    protected $collection = 'posts';
}
var_dump( User::count() );

Ругается вот таким словами:

2017/07/03 05:06:48 [error] 4379#4379: *8 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to a member function connection() on null in /var/www/test/vendor/illuminate/database/Eloquent/Model.php:1041
Stack trace:
#0 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(1007): Illuminate\Database\Eloquent\Model::resolveConnection('mongodb')
#1 /var/www/test/vendor/moloquent/moloquent/src/Eloquent/Model.php(558): Illuminate\Database\Eloquent\Model->getConnection()
#2 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(814): Moloquent\Eloquent\Model->newBaseQueryBuilder()
#3 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(798): Illuminate\Database\Eloquent\Model->newQueryWithoutScopes()
#4 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(1357): Illuminate\Database\Eloquent\Model->newQuery()
#5 /var/www/test/vendor/moloquent/moloquent/src/Eloquent/Model.php(590): Illuminate\Database\Eloquent\Model->__call('count', Array)
#6 /var/www/test/vendor/illuminate/database/Eloquent/Model.php(1369): Moloquent\Eloquent\M" while reading response header from upstream, client: 192.168.33.1, server: test.dev, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "test.dev"

Подключение валидное, база test существует, коллекцияposts существует, в ней 1 запись для теста. Что я делаю не так?

Инфу брал частично здесь и здесь.

P.S. Выбор Moloquent не критичен, но желателен. Хотелось бы разобраться на будущее вообще в подходе к такого рода решениям, потому что Moloquent далеко не единственный модуль, который хотелось бы использовать отдельно. Однако, чтобы не выходить за рамки данного вопроса, прошу помощи только по Moloquent, в остальном попробую потом разобраться сам, ориентируясь на данный вопрос. Спасибо за понимание.

P.P.S. Закомментированные строки я оставил чтобы показать с чем я пробовал "играться" и не получилось.

READ ALSO
php msql запрос к 3-ем таблицам

php msql запрос к 3-ем таблицам

Оновлено: мне не нужно вытаскивать из одной таблицы по параметрам другой, мне просто нужно из трех таблиц вытаскивать данные по правилам...

221
Laravel relation One to One through One (or pivot)

Laravel relation One to One through One (or pivot)

В ларе eloquent куча разных крутых приблуд для использования связейНо я очень давно мучаюсь с более сложными (а вроде и простыми) связями, используя...

386
Вывод таксономии по url

Вывод таксономии по url

Подскажите пожалуйста, как вывести в заголовок таксономию по текущему urlВ данный момент выводит название категории /product-category/kompressory-standart/...

371