incubator icon indicating copy to clipboard operation
incubator copied to clipboard

Call to undefined method ::update() (Phalcon\Mvc\MongoCollection)

Open cottton opened this issue 6 years ago • 0 comments

Old issue ? Thought i better open a new one. From 2017: https://github.com/phalcon/incubator/issues/794 has this never been merged|fixed?

Test Script:

var_dump(PHP_VERSION); // string(6) "7.2.19"
var_dump(Phalcon\Version::get()); // string(5) "3.4.2"
// "phalcon/incubator": "3.4.x",
// "phalcon/devtools": "3.4.x",
// "phalcon/ide-stubs": "~3.4.0",

class User extends Phalcon\Mvc\MongoCollection
{
    /**
     * {@inheritdoc}
     */
    public function getSource()
    {
        return 'user';
    }
}

// create one user
$model = new User();
$model->foo = 1;
$model->bar = 2;
var_dump($model->create()); // true


// load first user
/** @var User $model */
$model = $model::findFirst();
echo var_export($model->toArray(), true) . PHP_EOL;
// array (
//     '_id' =>
//         MongoDB\BSON\ObjectId::__set_state(array(
//             'oid' => '5d24da504438bd006407a6b2',
//         )),
//     'foo' => 1,
//     'bar' => 2,
// )


// update user
$model->foo = 5;
var_dump(get_class($model)); // string(4) "User"
var_dump(is_a($model, \Phalcon\Mvc\MongoCollection::class)); // bool(true)
var_dump(is_a($model, \Phalcon\Mvc\Collection::class)); // bool(true)
var_dump(method_exists($model, 'create')); // bool(true)
echo var_export($model->toArray(), true) . PHP_EOL;
// array (
//     '_id' =>
//         MongoDB\BSON\ObjectId::__set_state(array(
//             'oid' => '5d24da504438bd006407a6b2',
//         )),
//     'foo' => 5,
//     'bar' => 2,
// )

var_dump($model->update()); // Fatal error: Uncaught RuntimeException: Call to undefined method ::update() in ...

cottton avatar Jul 09 '19 18:07 cottton