Laravel : Call to undefined method Illuminate\Database\Eloquent\Collection::save()

Ich bin im Grunde versucht, um eine bestimmte Zeile aus meiner Tabelle und aktualisieren Sie es, aber ich am Ende immer eine Sammlung für die save-Methode ist nicht definiert, wie die Fehlermeldung sagt, in meinem Titel. Können Sie mir bitte sagen, was falsch ist im code unten. Ich habe auch versucht es ohne die get-Methode. Aber in diesem Fall bekomme ich eine andere Fehlermeldung. Auch, bitte lassen Sie mich wissen, ob es eine bessere Vorgehensweise zum abrufen einer Zeile aus einer Tabelle mit zwei Primärschlüsseln(userId", folderName) in diesem Fall. Danke 🙂

$tempFolder =   Message_Folders::where('userId',"=",1)->where('folderName',"=",$imap_folder['name'])->get();
if($tempFolder==null){//If not existing, however in this example assume that it exists
        $tempFolder =  new Message_Folders();
        $tempFolder->userId = 1;    
        $tempFolder->folderName = $imap_folder['name'];
        }
        $tempFolder->flags = $imap_folder['status']->flags;
        $tempFolder->messages = $imap_folder['status']->messages;
        $tempFolder->recent = $imap_folder['status']->recent;
        $tempFolder->unseen = $imap_folder['status']->unseen;
        $tempFolder->uidnext = $imap_folder['status']->uidnext;
        $tempFolder->uidvalidity = $imap_folder['status']->uidvalidity;
        $tempFolder->save();

Edit 1:

Nach Aktualisierung den code wie erwähnt in der ersten Antwort, jetzt bekomme ich einen neuen Fehler.

SQLSTATE[42S22]: Column nicht found: 1054 Unknown column 'id' in 'where-Klausel' (SQL: update message_folders set recent = 4, updated_at = 2014-03-08 13:34:10 wo id ist null)

Entnehmen Sie bitte den folgenden code:( Auch, wenn alle Werte gleich sind, dann funktioniert es einwandfrei(seit dem update ist eigentlich nicht passiert))

$tempFolder =   $this->folders->where('userId',"=",1)->where('folderName',"=",$imap_folder['name'])->first();
        if($tempFolder==null){
        $tempFolder =  new Message_Folders();
        $tempFolder->userId = 1;    
        $tempFolder->folderName = $imap_folder['name'];
        }
        $tempFolder->flags = $imap_folder['status']->flags;
        $tempFolder->messages = $imap_folder['status']->messages;
        $tempFolder->recent = 4;
        $tempFolder->unseen = $imap_folder['status']->unseen;
        $tempFolder->uidnext = $imap_folder['status']->uidnext;
        $tempFolder->uidvalidity = $imap_folder['status']->uidvalidity;

        $tempFolder->save();

Edit 2: Teil der migration-Datei für die Tabelle in der oben aufgeführten code:

public function up()
    {
        Schema::create('message_folders', function(Blueprint $table) {
           $table->integer('userId');
           $table->string('folderName', 200);
           $table->integer('flags');
           $table->integer('messages');
           $table->integer('recent');
           $table->integer('unseen');
           $table->integer('uidnext');
           $table->integer('uidvalidity');
           $table->timestamps();
           $table->primary(array('userId','folderName'));
        });
    }

InformationsquelleAutor Chintan Parekh | 2014-03-08

Schreibe einen Kommentar