Funkce při novém vložení řádku nevrátí id

jAkErCZ
Člen | 322
+
-2
-

Zdravím,
mám v modulu funkci na ukládání ale mám problém že jakmile to přidá nový řádek tak to nevrátí jeho id proč?

/**
 * @param $photo
 * @return mixed
 */
public function saveGallery($photo)
{
    if (!$photo[self::COLUMN_GAL_ID])
        $this->database->table(self::TABLE_GALLERY)->insert($photo);
     else
        $this->database->table(self::TABLE_GALLERY)->where(self::COLUMN_GAL_ID, $photo[self::COLUMN_GAL_ID])->update($photo);

    return $photo->photo_id;
}

Pokud jde o update tak ten vrací id v pohodě… ale nový ne proč?

David Matějka
Moderator | 6445
+
+2
-

ta metoda insert hodnotu vrati, ty si ji ale nikam neukladas

Ondřej Kubíček
Člen | 494
+
+1
-

kde by se to tam při insertu vzalo, si musíš vytáhnout vložené id a vrátit ho:

$insertedId = $this->database->table(self::TABLE_GALLERY)->insert($photo);
...
return $insertedId;
jAkErCZ
Člen | 322
+
0
-

David Matějka napsal(a):

ta metoda insert hodnotu vrati, ty si ji ale nikam neukladas

V tom případě by mělo stačit něco jako

$photo = $this->database->table(self::TABLE_GALLERY)->insert($photo);

ne?

jAkErCZ
Člen | 322
+
0
-

Ondřej Kubíček napsal(a):

kde by se to tam při insertu vzalo, si musíš vytáhnout vložené id a vrátit ho:

$insertedId = $this->database->table(self::TABLE_GALLERY)->insert($photo);
...
return $insertedId;

To chápu ale jak si mám vrátit zase to id z update

David Matějka
Moderator | 6445
+
0
-

to uz mas na vstupu. muzes udelat return v kazde if vetvi

jAkErCZ
Člen | 322
+
0
-

jAkErCZ napsal(a):

Ondřej Kubíček napsal(a):

kde by se to tam při insertu vzalo, si musíš vytáhnout vložené id a vrátit ho:

$insertedId = $this->database->table(self::TABLE_GALLERY)->insert($photo);
...
return $insertedId;

Díky všem :)