Zistenie id zazname hned po jeho vlozeni
- Oli
- Člen | 1215
Buď jak píše romiix.org, nebo stačí samotné $lastInsert. Tzn. Můžeš volat třeba něco jako
$lastInsert = $this->horninaRepository->findAll()->insert($values);
$arr = [
// Samotné $lastInsert vrací to samé jako $lastInsert->id (respektive vrací imho primary key)
'hornina_id' => $lastInsert
];
- cujan
- Člen | 410
predsa este jedna vec kod
<?php
$priradeneTextury = $this->horninaTexturaRepository->findBy(array('idHornina'=> $id))->fetchColumn('idCiselnikTextura');
?>
mi hadze chybu aj ked predtym mi to v pohode fungovalo
Call to undefined method Nette\Database\Table\Selection::fetchColumn()
vdaka
cujan
- cujan
- Člen | 410
Tak mam aplikaciu., ktora funguje v starsej verzii nette a tam to
pouzivam…
ono nasiel som v dokumentacii, ze fetchColumn() sa ma prepisat na
fetchField
přejmenujte metody exec() → query(), fetchColumn() → fetchField() a lastInsertId() → getInsertId()
ale zas ked to len premenujem tak to nefunguje :D
cujan
- David Matějka
- Moderator | 6445
fetchField() je na ResultSet, ne na Selection, na selection pouzij
->fetch()->idCiselnikTextura
- cujan
- Člen | 410
oki pouzil som fetchAll, dumpol sopm si to a vzhodilo mi uz to co chcem len neviem ako vycucnut konkretne hodnoty…potrebujem idCislenikTextura
dump
<?php
array (2) ▼
4 => Nette\Database\Table\ActiveRow #ed94 ▼
table private => Nette\Database\Table\Selection #d257 ►
data private => array (2) ▼
id => 4
idCiselnikTextura => 2
dataRefreshed private => FALSE
isModified private => FALSE
5 => Nette\Database\Table\ActiveRow #15a6 ▼
table private => Nette\Database\Table\Selection #d257 ►
data private => array (2) ▼
id => 5
idCiselnikTextura => 4
dataRefreshed private => FALSE
isModified private => FALSE
?>
- Oli
- Člen | 1215
Pokud chceš jen IDčka, tak si je vyplň v selectu:
$horniny = $this->connection->table('horniny')->select('id');
foreach($horniny as $value)
{
dump($value);
}
Ten fetchAll() nemusíš psát. Mám pocit, že se to používá (nebo používalo), pokud jsi ten samej výpis procházel několikrát… Já to ale standardně nepoužívám. Jestli to je dobře nebo ne, nevím :-)