Hello,
I use NotORM on my website, but I have a question,
This are my DB tables :
TABLE USER (id, nickname)
TABLE MESSAGE (id, USER_id_sender, USER_id_receiver, message)How can I configure my NotOrm for fetch all message (just received for the example) ? And how to fetch them ?
Thanks,
Jeremy
class myStructure extends NotORM_Structure_Convention {
    function getReferencedTable($name, $table) {
        switch ($name) {
            case 'sender':
            case 'receiver':
                return parent::getReferencedTable('user', $table);
        }
        return parent::getReferencedTable($name, $table);
    }
}$db = new NotORM($pdo, new myStructure());$messages_received = $db->user[$user_id]->messages_received();$messages_received = $db->user[$user_id]->messages()->via('sender_id');
$sender = $db->message[$message_id]->sender;$receiver = $db->message[$message_id]->receiver;
<?phperror_reporting(E_ALL);require __DIR__ . '/vendor/autoload.php';
$pdo = new PDO('sqlite::memory:');$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('	CREATE TABLE USER (		id INT UNSIGNED NOT NULL PRIMARY KEY,		nickname VARCHAR(63) NOT NULL	);
	CREATE TABLE MESSAGE (		id INT UNSIGNED NOT NULL PRIMARY KEY,		USER_id_sender INT UNSIGNED NOT NULL,		USER_id_receiver INT UNSIGNED NOT NULL,		content TEXT NOT NULL,		FOREIGN KEY (USER_id_sender) REFERENCES USER(id) ON DELETE CASCADE,		FOREIGN KEY (USER_id_receiver) REFERENCES USER(id) ON DELETE CASCADE	);
	INSERT INTO USER(id, nickname) VALUES (1, "jeremy");	INSERT INTO USER(id, nickname) VALUES (2, "roger");	INSERT INTO USER(id, nickname) VALUES (3, "frank");
	INSERT INTO MESSAGE(id, USER_id_sender, USER_id_receiver, content) VALUES (1, 1, 2, "yo");	INSERT INTO MESSAGE(id, USER_id_sender, USER_id_receiver, content) VALUES (2, 2, 1, "yo !");	INSERT INTO MESSAGE(id, USER_id_sender, USER_id_receiver, content) VALUES (3, 1, 2, "yeah !");
');
class myStructure extends NotORM_Structure_Convention {    function getReferencedTable($name, $table) {        switch ($name) {            case 'USER_id_sender':            case 'USER_id_receiver':                return parent::getReferencedTable('User', $table);        }        return parent::getReferencedTable($name, $table);    }}
$NotORM = new NotORM($pdo, new myStructure());
$Jeremy = $NotORM->USER()->where('nickname=?', 'jeremy')->fetch();$Messages_sended = $Jeremy->MESSAGE()->via('USER_id_sender');$Messages_received = $Jeremy->MESSAGE()->via('USER_id_receiver');$Messages_all = null; // How to join sended and received ?
echo "USER";echo '<pre>' . print_r(iterator_to_array($Jeremy), true) . '</pre>';
echo "Messages sended";echo '<pre>' . print_r(array_map('iterator_to_array', iterator_to_array($Messages_sended)), true) . '</pre>';
echo "Messages received";echo '<pre>' . print_r(array_map('iterator_to_array', iterator_to_array($Messages_received)), true) . '</pre>';$db = new NotORM($pdo, new myStructure());
$MESSAGES = $db->MESSAGE()->where('USER_id_receiver=?', 1);
foreach ($MESSAGES as $MESSAGE) {
 $USER = $MESSAGE->USER()->via('USER_id_sender')->fetch();
 // TBD
}class myStructure extends NotORM_Structure_Convention {
    function getReferencedTable($name, $table) {
        switch ($name) {
            case 'USER_id_sender':
            case 'USER_id_receiver':
                return parent::getReferencedTable('User', $table);
        }
        return parent::getReferencedTable($name, $table);
    }
    function getReferencingTable($name, $table) {
        switch ($name) {
            case 'USER_id_sender':
            case 'USER_id_receiver':
                return parent::getReferencedTable('User', $table);
        }
        return parent::getReferencedTable($name, $table);
    }
}