ich Laravel gerade erst begonnen und alles, was ich tun möchte, ist folgende Abfragein Eloquent Arbeit erhalten:
ON DUPLICATE KEY UPDATE in Eloquent
INSERT INTO geschichte (geschichte_id,
geschichte_text1,
geschichte_text2,
geschichte_text3)
VALUES (:geschichte_id,
:geschichte_text1,
:geschichte_text2,
:geschichte_text3)
ON DUPLICATE KEY
UPDATE geschichte_id = :geschichte_id,
geschichte_text1 = :geschichte_text1,
geschichte_text2 = :geschichte_text2,
geschichte_text3 = :geschichte_text3;
Reglerfunktion
public function alterGeschichte(Request $request)
{
$geschichte1 = new Geschichte;
$geschichte2 = new Geschichte;
$geschichte3 = new Geschichte;
$geschichte1 = Geschichte::updateOrCreate(
['id' => 1],
['geschichte_text1' => $request->geschichte_text1]
);
$geschichte2 = Geschichte::updateOrCreate(
['id' => 2],
['geschichte_text2' => $request->geschichte_text2]
);
$geschichte3 = Geschichte::updateOrCreate(
['id' => 3],
['geschichte_text3' => $request->geschichte_text3]
);
$geschichte1->save();
$geschichte2->save();
$geschichte3->save();
return redirect('/geschichte');
}
Das Problem im Detail
Ich kann den Teil 'auf doppelte Schlüsselaktualisierung' nicht funktionieren.
Es wird immer ein neuer Eintrag für jedes Update erstellt. Ich möchte, dass die ID für jeden Eintrag immer gleich ist und nur den älteren Eintrag mit dieser ID überschreiben.
Ich wäre sehr dankbar für jede Art von Hilfe. Ich kämpfe mit dieser von Stunden ...
UPDATE
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateGeschichteTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('geschichte', function (Blueprint $table) {
$table->increments('id');
$table->text('geschichte_text1');
$table->text('geschichte_text2');
$table->text('geschichte_text3');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('geschichte');
}
}
können Sie die CREATE-Table-Anweisung hinzufügen. Ist die ID als Primärschlüssel festgelegt und haben Sie andere Primärschlüssel in der Tabelle? – fehrlich
@XzenTorXz Ich habe die Frage aktualisiert. Die ID ist der einzige Primärschlüssel. – Schwesi
Warum machen Sie vor updateOrCreate neue Modelle? –