could not be convert to int
- Miri
- Člen | 117
Ahoj, nevíte prosím někdo proč mi tato funkce vrátí číslo které není int ?
function choseMenu($id, $promenna) {
$row = $this->connection->table('menunazev')->where('menu_idmenu.idnadrazen',$id)->where('jazyk_idjazyk',$this->language)->where('hodnota',$promenna)->fetch();
return $row !== FALSE ? $row["idmenu"] : NULL;
}
Když následně chci pracovat s výsledkem vrácené funkce hlásí mi to
tuto chybu, přitom idmenu je v DB integer
Object of class Nette\Database\Table\ActiveRow could not be converted
to int
Předem díky za odpověd
- Šaman
- Člen | 2666
Miri napsal(a):
Ahoj, nevíte prosím někdo proč mi tato funkce vrátí číslo které není int ?
Určitě ti tato funkce vrací objekt třídy Nette\Database\Table\ActiveRow? Dumpni si výsledek té funkce.
U ternálního operátoru se doporučují závorky kolem podmínky, ale
zkoušel jsem to a v tomto tvaru mi to funguje. Takže by mě docela zajímal
ten dump.
U práce s výsledkem dotazu pomocí NDb se většinou používá objektový
přístup, ale i to by mělo fungovat.
Tvůj kód jsem si zkusil a funguje. Dumpuj a hledej, ale chyba bude asi jinde. Zkoušel jsem na Sandboxu Nette 2.0.12
- Miri
- Člen | 117
Tak tohle jsem si dumpnul:
Nette\Database\Table\ActiveRow(4) {
table private => Nette\Database\Table\Selection(18) {
connection protected => Nette\Database\Connection(6) {
dsn private => ...
driver private => Nette\Database\Drivers\MySqlDriver(1) { ... }
preprocessor private => Nette\Database\SqlPreprocessor(6) { ... }
databaseReflection private => Nette\Database\Reflection\DiscoveredReflection(5) { ... }
cache private => Nette\Caching\Cache(4) { ... }
onQuery => array(1) [ ... ]
}
cache protected => Nette\Caching\Cache(4) {
storage private => Nette\Caching\Storages\FileStorage(4) { ... }
namespace private => "Nette.Database.825c2d8651c1fc3eba90c589429b8450\x00" (48)
key private => NULL
data private => NULL
}
sqlBuilder protected => Nette\Database\Table\SqlBuilder(14) {
driver private => Nette\Database\Drivers\MySqlDriver(1) { ... }
driverName private => "mysql" (5)
tableName protected => "menu" (4)
databaseReflection protected => Nette\Database\Reflection\DiscoveredReflection(5) { ... }
delimitedTable protected => "`menu`" (6)
select protected => array(0)
where protected => array(1) [ ... ]
conditions protected => array(1) { ... }
parameters protected => array(1) [ ... ]
order protected => array(0)
limit protected => NULL
offset protected => NULL
group protected => ""
having protected => ""
}
name protected => "menu" (4)
primary protected => "idmenu" (6)
primarySequence protected => FALSE
rows protected => array(1) {
5 => Nette\Database\Table\ActiveRow(4) { *RECURSION* }
}
data protected => array(1) {
5 => Nette\Database\Table\ActiveRow(4) { *RECURSION* }
}
dataRefreshed protected => FALSE
referenced protected => array(0)
referencing protected => array(0)
referencingPrototype protected => array(0)
aggregation protected => array(0)
accessedColumns protected => array(1) {
idmenu => TRUE
}
previousAccessedColumns protected => array(1) {
idmenu => TRUE
}
observeCache protected => TRUE
checkReferenced protected => FALSE
keys protected => array(0)
}
data private => array(1) {
idmenu => 5
}
dataRefreshed private => FALSE
modified private => array(0)
}