Jde odkázat na sloupec přes cizí klíč pomocí proměnné?
- Hafran
- Člen | 121
Mám cca takovouhle funkci, které předám sloupec v tabulce jako string v proměnné $column
public function getSMT($id, $column){
return $this->db->table("user")->get($id)->$column;
}
A teď jsem narazil na potřebu předat tam referencovaný sloupec přes cizí klíč. (třeba tabulka user přes data_id vede na user_data a z user_data bych potřeboval sloupec sloupec_z_druhe_tabulky)
Tedy že bych do funkce poslal
$column = "user_data->sloupec_z_druhe_tabulky" nebo "user_data.sloupec_z_druhe_tabulky";
což nejde. Napadá vás, jak na to, abych nemusel měnit tu funkci?
Edited: //Napsal jsem to trošku hloupě. Funkci samozřejmě měnit budu muset, ale jde mi o to jestli to tam budu moct posílat tím stringem – jestli si s tím NDB nikterak neporadí, třeba přes ref nebo tak.
Editoval Hafran (15. 8. 2014 12:56)
- Hafran
- Člen | 121
Jasný, změnil jsem to takhle:
public function getSMT($id, $column){
if (strpos($column, ".") === FALSE) {
$img = $this->db("user")->get($id)->$column;
} else {
$c = explode(".", $column);
$table = $c[0];
$column = $c[1];
$img = $this->db("user")->get($id)->ref($table)->$column;
}
}
Ale tomuhle větvení jsem se chtěl vyhnout, a zajímalo by mě, jestli to některá z těch fcí u NDB třeba neumí ošetřit nějak sama.