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

jAkErCZ
Člen | 324
+
-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 | 324
+
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 | 324
+
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 | 324
+
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 :)