使用Phalcon和关系插入数据

时间:2014-12-03 10:18:19

标签: php relationship phalcon

我刚刚开始考虑使用Phalcon框架。我之前从未真正使用过框架(或者真的是MVC)所以这是一个学习曲线。

我创建了2个表:UserClient

客户可以有多个User,但用户只能拥有1个Client

我有以下型号:

<?php
class User extends \Phalcon\Mvc\Model
{
  public $id;
  public $name;
  public $email;
  public $username;
  public $password;
  public $active;
  public $isAdmin; 
  public $client;

  public function initialize()
  {
    $this->setConnectionService('gateway-db');
    $this->belongsTo("clientId", "Client", "id");
  }
}

<?php
class Client extends \Phalcon\Mvc\Model
{
  public $id;
  public $code;
  public $name;
  public $active;

  public function initialize()
  {
    $this->setConnectionService('gateway-db');
    $this->hasMany("id", "User", "clientId");
  }
}

我正在尝试使用以下代码创建与现有User相关联的新Client,但clientId字段为NULL且未链接。

$client = Client::findFirstByCode("DEM");  

$user = new User();
$user->email = "lock@lock.com";
$user->is_admin = 1;
$user->username = "lock";
$user->active = 1;
$user->name = "Lachlan";
$user->password = $this->security->hash("password");
$user->client = $client;

我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

字段clintId不存在。您需要使用$this->belongsTo("id", "Client", "id");。客户模型也是如此。

注意:您的字段client可能是整数,因此它不能包含整个$client对象。

尝试分配ID:$user->client = $client->id

还要考虑使用受保护的变量和getter / setter。