@Sergey0808

PHP Phalcon, как добавить новых роботов к определенному пользователю?

Есть две модели пользователи и роботы, установил связь между ними как один ко многим:
class Users extends Model
    {
        public $id;

        public $name;

        public $about;

        public $email;


        public function initialize()
        {
            $this->hasMany(
                "id",
                "Robots",
                "users_id"
            );
        }


class Robots extends Model

    {
        public $id;

        public $name;

        public $type;

        public $year;

        public $users_id;

        public function initialize()
        {
            $this->belongsTo(
                "users_id",
                "Users",
                "id"
            );
        }
    }

Представление добавления робота:
<h2>
    Заполните эту форму, чтобы добавить своего робота!
</h2>

<?php echo $this->tag->form("robots/add"); ?>

<div>
    <div>
        <label for="name">Имя робота:</label>
    </div>

    <?php echo $this->tag->textField("name"); ?>

</div>

<div>
    <div>
        <label for="type">Тип робота:</label>
    </div>

    <?php echo $this->tag->textField("type"); ?>

</div>

<div>
    <div>
        <label for="year">Год создания робота:</label>
    </div>

    <?php echo $this->tag->textField("year"); ?>

</div>


<br>
<div>
    <?php echo $this->tag->submitButton("Добавить"); ?>
</div>
<?php echo $this->tag->endForm(); ?>

И контроллёр:
public function addAction()
        {
            if ($this->request->isGet()) {
                $this->tag->prependTitle("Добавить робота :: ");
            }

           if ($this->request->isPost()) {

               $user = Users::findFirst($this->session->get("auth"));
               $userRobots = $user->getRobots();
               $userRobots->name = $this->request->getPost("name");
               $userRobots->type = $this->request->getPost("type");
               $userRobots->year = $this->request->getPost("year");

               if (!$userRobots->save()) {
                   echo "Произошли следующие проблемы: <br>";

                   $errors = $userRobots->getMessages();

                    foreach ($errors as $error) {
                        echo $error, "<br/>";
                    }

                }

                return $this->response->redirect([
                    'for' => 'user-show',
                    'name' => $user->name
                ]);
            }


        }

И получаю такую ошибку:
Column 'Sergey' doesn't belong to any of the selected models (1), when preparing.
В каком месте у меня ошибка ?
  • Вопрос задан
  • 664 просмотра
Пригласить эксперта
Ответы на вопрос 2
maximw
@maximw
Ошибка скорее всего в том, что вместо имени столбца в БД вы вставляете данные.
В вашем коде не нашел места где это делается.
Ответ написан
lxfr
@lxfr
Я чего то не понял,
$userRobots = $user->getRobots();
$userRobots->name = $this->request->getPost("name");


по логике вы дергаете робот-ОВ а потом пишете $userRobots->name якобы он один, вам не кажется это странным?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы