Frage

Ich versuche, ein neues Array-Element in eine vorhandene Array-Variable zu verschieben, die Elemente aus der Datenbank enthält.Was ich tun möchte, ist, am Ende dieses Arrays ein neues Element mit dem Namen „Andere“ hinzuzufügen und es als Auswahl-Dropdown in der Ansicht anzuzeigen, das aus allen Elementen aus der Datenbank besteht, und am Ende das Element „Andere“ auszuwählen Ich habe es manuell in meinem Controller hinzugefügt.

Folgendes habe ich versucht:

    $competition_all = Competition::all();
    $newCompete = array('name'=>'Others');
    array_push($competition_all, $newCompete);

    $this->competition_games = array('Competition');

    foreach ($competition_all as $competition_games) {
        $this->competition_games[$competition_games->name] = $competition_games->name;
    }

Was da stand, ist so

Unbehandelte Ausnahme

Nachricht:

Es wird versucht, Eigentum eines Nicht-Objekt-Standorts abzurufen:

C: xampp htdocs khelkheladi khelkheladi application controller register.php in Zeile 104

In meiner Datenbank hat der Wettbewerb diese Art von Spaltenstruktur

->id
->year
->place
->name
->created_at
->updated_at

in vorgegebener Reihenfolge.

Was ich versuche, ist, ohne tatsächlich ein Element in die Datenbank einzufügen, den anderen nur statisch das ausgewählte Element im ausgewählten Tag in der Ansicht anzuzeigen.Wie füge ich ein solches neues Element ein, ohne es tatsächlich in die Datenbank einzufügen, sondern nur zur Ansicht anzuzeigen?

Die Ausgabe, die ich vorher erhalte, wenn ich nur das Datenbankelement abrufe, ist wie folgt

<select>
  <option value="1">Value 1</option>
  <option value="2">Value 2</option>
  <option value="3">Value 3</option>
  <option value="4">Value 4</option>
</select> 

Was ich gerne mache, ist so

<select>
  <option value="1">Value 1</option>
  <option value="2">Value 2</option>
  <option value="3">Value 3</option>
  <option value="4">Value 4</option>
  <option value="5">Others</option>
</select> 
War es hilfreich?

Lösung

Der „saubere“ Weg wäre, eine Instanz von zu erstellen Competition ohne es in die Datenbank zu übertragen, und wiederholen Sie Ihren Zyklus noch einmal mit der zusätzlichen Instanz.

Hier scheinen Sie jedoch nur eine Liste zu erstellen, daher sollte es ausreichen, die endgültige Liste viel schneller zu ergänzen:

$competition_all = Competition::all();
$this->competition_games = array('Competition');

foreach ($competition_all as $competition_games) {
    $this->competition_games[$competition_games->name] = $competition_games->name;
}
$this->competition_games['name'] = 'Others';

Andere Tipps

Das liegt daran, dass Sie dem letzten Element des Arrays ein Nichtobjekt hinzufügen.

Ich vermute, Sie erhalten ein Array von Objekten mit der Namenseigenschaft generasacodicetagpre.

Hier fügen Sie dem letzten Element der Objekte des Objekts ein Schlüssel=> Wertpaar hinzu= / p> generasacodicetagpre.

Hier gehen Sie durch das Array von Objekten, und wenn es um das letzte Element geht, hat der "$ competition_games-> Name" keine Namenseigenschaft generasacodicetagpre.

Versuchen Sie, etwas zu versuchen, einschließlich einer stdclass dafür, wie: generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top