Domanda

Sto cercando di spingere il nuovo elemento dell'array esistente variabile di matrice che ha elementi dal database.Quello che voglio fare è aggiungere una nuova voce denominata "Altri" alla fine di questo array e visualizzare come selezionare nel menu a discesa vista che si compone di tutti gli elementi dal database e alla fine di questo selezionare 'Altri' elemento che ho aggiunto manualmente nel mio controller.

Ecco cosa ho provato a fare:

    $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;
    }

quello che ha detto è come questo

Eccezione Non Gestita

Messaggio:

Cercando di ottenere la proprietà di non-oggetto e Posizione:

C:\xampp\htdocs\khelkheladi\khelkheladi\application\controllers egister.php on line 104

Nel mio database il Concorso ha questo tipo di struttura a colonna

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

nell'ordine dato.

Quello che sto cercando di fare è senza inserimento di un elemento in un database, soltanto in modo statico mostrare selezionare la voce nel tag select in vista.Come faccio a inserire tale nuovo elemento senza l'inserimento di database, ma da visualizzare nella vista solo?

L'output che ricevo, prima da solo il recupero di database voce è simile a questo

<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> 

quello che mi piace fare è questa:

<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> 
È stato utile?

Soluzione

La "pulizia" di un modo per farlo sarebbe quello di creare un'istanza di Competition senza commettere il database, e ripetere, una volta di più che il tuo ciclo con l'extra istanza.

Tuttavia, qui sembrano essere solo la produzione di un elenco, in modo che dovrebbe essere abbastanza per fare una molto più veloce oltre alla lista definitiva:

$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';

Altri suggerimenti

Questo perché si sta aggiungendo un non-oggetto per l'ultimo elemento dell'array.

Qui mi si supponga di avere un array di oggetti con il nome di proprietà

$competition_all = Competition::all();

Qui si aggiunge una coppia chiave=>valore per l'ultimo elemento dell'array di oggetti

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

Qui si cammina attraverso la matrice di oggetti e quando si tratta di l'ultimo elemento della "$competition_games->nome," non ha nome proprietà

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

Provare qualcosa di simile tra un stdclass come :

$newCompete = new StdClass();
$newCompete->name = 'Others';
array_push($competition_all, $newCompete);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top