CakePHP kez, iki tablo arasında Modeller katılmadan

1 Cevap php

Ben iki farklı açısından birbirine katılmak, iki model arasındaki ilişkilerin nasıl kurulacağı hakkında bir sorum var.

Ben bende sorun bir örnek vereyim:

Users (id, name)
Messages (id, message, from_user_id, to_user_id)

(In my case, it's not users nor messages, but this hopefully illustrates the problem in a simpler way)

Kullanıcılar birbirlerine mesaj gönderebilirsiniz, ve her mesaj gönderdi, bir kullanıcı ve onu alacak bir kullanıcı vardır. Ben Model ilişkilerini anlamaya çalışıyorum:

class User extends AppModel {
    var $hasMany = array("Message");
}

class Message extends AppModel {
    var $belongsTo = array("User");
}

Ben de CakePHP düzgün ilişkiyi almak böylece alanları veritabanında adlı olmalıdır nasıl emin değilim.

1 Cevap

Ben ilişki seçenekleri ile bunu atlatmanın mümkün oldum:

class Message extends AppModel {
    var $belongsTo = array(
        "FromUser" => array(
              "className" => "User"
            , "foreignKey" => "from_user_id"
            , "type" => "INNER"
        ),
        "ToUser" => array(
              "className" => "User"
            , "foreignKey" => "to_user_id"
            , "type" => "INNER"
        )
    );
}

class User extends AppModel {
    var $hasMany = array(
        "MessageFrom" => array(
              "className" => "Message"
            , "foreignKey" => "from_user_id"
        ),
        "MessageTo" => array(
              "className" => "Message"
            , "foreignKey" => "to_user_id"
        )
    );
}

This question and answer de çok yararlı oldu!