возвращение фалкона - PullRequest
0 голосов
/ 22 января 2019

Я хочу создать связь между таблицей пользователей и таблицей продуктов, но результат возвращает false это модель пользователя:

class Users extends \Phalcon\Mvc\Model
{
public $id;
public $name;
public $password;
 public $email;

 public function initialize()
    {
        $this->setSchema("asulaiman");
        $this->setSource("users");

        $this->hasMany(
            'id',
            'Products',
            'product_id'
        );}}

и это моя модель продукта:

class Products extends \Phalcon\Mvc\Model
{
    public $id;
    public $user_id;
    public $name;

    public function initialize()
    {
        $this->setSchema("asulaiman");
        $this->setSource("products");

         $this->belongsTo(
            'product_id',
            'Users',
            'id'
        );}}

и этот запрос:

public function showAction($id)
{
    $get_product = Products::findFirst('id = ' . $id);
    if (!empty($get_product)) {
        $this->response->setJsonContent(array('data' => $get_product->users));
return $this->response; 
}}

этот результат возвращает:

Любая помощь, пожалуйста

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Проблема в том, что вы пытаетесь получить пользователей свойств продукта: $ get_product-> users Но у продуктов нет пользователей (только id, user_id и name);

Сначала вы должны получитьuser_id:

$product = Products::FindFirstById($id);
$user = Users::FindFirstById($product->user_id);

Вы также можете сделать это за один шаг, но это будет понятнее.

0 голосов
/ 22 января 2019

Вот что происходит, когда отношения не обнаруживаются.

Я собираюсь предположить, что у ваших пользователей много продуктов, и эти продукты принадлежат пользователям.Ваш код в модели Products говорит о том, что поле products_id в модели Products относится к полю id в модели User.

Проблема в том, что в модели Products нет поля product_id.

 $this->belongsTo(
    'user_id' // "id" field on the Products model
    'Users', // The model I want
    'id'// The field I want on that model (Users.id)
);

То, что вы делаете, на самом деле не имеет большого смысла.Помимо объяснения того, как работают отношения, я не могу больше вам помочь, не увидев схему.

...