Prečo mi nefunguje $this->database->table(‚t‘)->update($val)->where(‚id?‘, $postId)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Čamo
Člen | 798
+
0
-

Brý večer,
vie mi prosím vás niekto vysvetliť, prečo sa nedá napísať príkaz:

$this->database->table('posts')->update($values)->where('id = ?', $postId);

Píše to chybu: „Call to a member function where() on a non-object“
Prečo to nejde, keď insert sa tak napísať dá(akurát nepotrebuje where).
Takto sa to rieši v quickstarte a ja nechápem, prečo sa robia dva requesty do DB(teda myslím že to tak je).

public function postFormSucceeded($form)
{
    $values = $form->getValues();
    $postId = $this->getParameter('postId');

    if ($postId) {
        $post = $this->database->table('posts')->get($postId);
        $post->update($values);
    } else {
        $post = $this->database->table('posts')->insert($values);
    }
...

Vidíte tam to insert? Prečo sa nedá rovnako napísať aj update?

Editoval Čamo (27. 5. 2014 19:22)

David Matějka
Moderator | 6445
+
0
-

musis to obratit, nejdriv ->where a potom ->update

Čamo
Člen | 798
+
0
-

matej21:
Díky, už to funguje.