2014-12-03 3 views
0

Я только начал изучать использование рамки Phalcon. Я никогда не использовал фреймворк раньше (или действительно MVC, если на то пошло), так что это немного кривая обучения.Вставка данных с использованием Phalcon и связей

Я создал 2 стола: User и Client.

Клиент может иметь много 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 = "[email protected]"; 
$user->is_admin = 1; 
$user->username = "lock"; 
$user->active = 1; 
$user->name = "Lachlan"; 
$user->password = $this->security->hash("password"); 
$user->client = $client; 

Что я могу делать неправильно?

ответ

1

Поле clintId нет. Вам нужно использовать $this->belongsTo("id", "Client", "id");. То же самое касается клиентской модели.

Примечание: Ваше поле client, вероятно, является целым числом, поэтому оно не может содержать весь объект $client.

Попробуйте присвоить идентификатор: $user->client = $client->id.

Также подумайте об использовании защищенных варов и геттера/сеттера.

Смежные вопросы