@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.
В каком месте у меня ошибка ?
  • Вопрос задан
  • 661 просмотр
Пригласить эксперта
Ответы на вопрос 2
maximw
@maximw
Ошибка скорее всего в том, что вместо имени столбца в БД вы вставляете данные.
В вашем коде не нашел места где это делается.
Ответ написан
lxfr
@lxfr
Я чего то не понял,
$userRobots = $user->getRobots();
$userRobots->name = $this->request->getPost("name");


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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 17:31
150000 руб./за проект
27 апр. 2024, в 16:39
1000 руб./в час
27 апр. 2024, в 16:38
30000 руб./за проект