Propojení jedné tabulku (uživatel – uživatel)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
arrow
Člen | 4
+
0
-

Zdravím,

mám vztah ošetřující-pacient a chci, aby ošetřující viděl všechny data pacienta a mohl s nimi manipulovat. Aktuálně jsou oba uživatelé ve stejné tabulce, na kterou je navázána vazební tabulka, jenž obsahuje ID obou uživatelů ze společné tabulky user.

patients_keeper: id_patient, id_keeper

<?php
$id_keeper = $this->user->id;
$patient = $this->database->table('patients_keeper');
$id_patient = $patient->where('id_keeper', $id_keeper)->select('id_patient');
$this->template->currentUser = $id_patient;
?>

Nevím, jestli je možná takováto relace v nette, ale když se pokouším získat ID pacienta, vypisuje to chybu:
Cannot read an undeclared property Nette\Database\Table\Selection::$username, v případě, že vybírám rovnou uživatelovo přihlašovací jméno a chybu:
Object of class Nette\Database\Table\Selection could not be converted to string, v případě, že chci vypsat celou proměnnou currentUser.

Nevidíte v tom chybu nebo nějaký jiný způsob, jak se „přepnout“ na pacienta a tak mu manipulovat s daty?

Předem díky za odpověď.

David Matějka
Moderator | 6445
+
0
-

tva promenna $id_patient obsahuje Selection, coz je nejaka kolekce radku. Pokud chces vybrat vsechny pacienty, ktere ma dany osetrujici, zkus tohle:

$patients = $this->database->table('user')->where(':patients_keeper(patient).id_keeper', $id_keeper);

v te promenne pak budes mit Selection s jednotlivymi pacienty.

arrow
Člen | 4
+
0
-

Chci, aby vztah mezi pacientem a ošetřujícím byl 1:1 (rekurzivní/unární vztah).
Teď je to M:N díky mezitabulce patients_keeper, která obsahuje dvě ID (atributy ‚id_patient‘, ‚id_keeper‘) z tabulky ‚user‘.
Zkoušela jsem vložit cizí klíč do tabulky ‚user‘, který by ukazoval na ID jiného uživatele z té stejné tabulky ‚user‘, ale to mi bohužel neumožnil adminer – nejde vložit cizí klíč do stejné tabulky. Proto bych se chtěla zeptat, zda je vůbec možné vytvořit rekurzivní/unární vztah, aby tabulka měla vazbu sama na sebe ve formě cizího klíče? Případně dělám něco špatně? Mockrát děkuju.