JamalWeb
@JamalWeb
Web - программист

Не работает insert() ActiveRecord MongoDB. Почему?

Соединение с mongo и выборка работает, добавление документа через миграцию работает, а вот через ActiveRecord нет.
Модель ActiveRecord
<?php

namespace common\models\activeRecord\searchPhone;

use Yii;

/**
 * This is the model class for collection "search_phone".
 *
 * @property \MongoDB\BSON\ObjectID|string $_id
 * @property mixed $name
 * @property mixed $birth
 * @property mixed $full_name
 */
class SearchPhone extends \yii\mongodb\ActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function collectionName()
    {
        return ['mydb', 'search_phone'];

    }

    /**
     * {@inheritdoc}
     */
    public function attributes()
    {
        return [
            '_id',
            'phone',
            'name',
            'bitrh',
            'full_name',
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['name', 'bitrh', 'full_name'], 'safe']
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            '_id'       => 'ID',
            'name'      => 'Name',
            'bitrh'     => 'Bitrh',
            'full_name' => 'Full Name',
        ];
    }

}

Как я пытаюсь добавить документ
/**
     * @throws \Exception
     */
    public function getModelSearchPhone()
    {

        /**
         * @var $model \common\models\localRecord\searchPhone\SearchPhone
         */
        $model = new $this->search_phone();

        $model->insert(['name'=> 'alex','phone'=> '79898707217','birth'=> 3124523143,'full_name'=> 'alex alex']);

    }

Добавляет документ только с полем object_id остальные поля не добавляются
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
VladOsadchyi
@VladOsadchyi
Студент
у Вас в rules() модели нету поля phone , поэтому запрос на вставку не проходит валидацию
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы