Ho utilizzato RESTful controllers nel mio progetto Laravel. Includendo:È possibile eseguire il routing del modello da utilizzare con i controller RESTful?
Route::controller('things', 'ThingController')
nel mio routes.php, posso definire funzioni nel ThingController
come:
public function getDisplay($id) {
$thing = Thing::find($id)
...
}
in modo che ottenere l'URL" ... le cose/display/1" sarebbe automaticamente diretto alla funzione del controller. Questo sembra abbastanza utile e ha funzionato benissimo per me finora.
Ho notato che molte delle funzioni del mio controller iniziano con l'ottenimento di un modello tramite ID dall'URL, e ho pensato che sarebbe stato bello poter usare route model binding per farlo invece per me. Così ho aggiornato il mio routes.php a
Route::model('thing', 'Thing');
Route::controller('things', 'ThingController')
e cambiato i ThingController
funzioni per
public function getDisplay($thing) {
...
}
ho assunto questo sarebbe magicamente lavorare nel modo volevo che (come tutto il resto che ho provato finora in Laravel ha), ma sfortunatamente ottengo "Tentativo di ottenere la proprietà di non oggetto" quando tento di utilizzare $thing
nella funzione. È qualcosa che dovrebbe essere in grado di funzionare e ho appena fatto qualcosa di sbagliato, o posso dire che il binding del modello funziona solo con percorsi esplicitamente denominati in routes.php?