Domanda

Ecco il mio percorso:

Route::controller('/app/{companyId}/', 'HomeController', array('before' => 'auth'));

Come posso recuperare l'argomento $companyId in __constructor per evitare di recuperarlo separatamente in tutte le mie azioni?

È stato utile?

Soluzione

Se vuoi ottenere i parametri nel __construct del tuo controller puoi fare questo:

class HomeController extends \BaseController
{
    public function __construct()
    {
        $this->routeParamters = Route::current()->parameters();
    }
}

restituirà un elenco di valori chiave di parametri per il percorso (es: ['companyId' => '1']) @vedi \Illuminate outing oute

Puoi anche ottenere un parametro specifico utilizzando il file getParametro() O parametro() metodi.

NOTA: Non sono sicuro che sia una grande idea però.Potrebbe esserci un modo più elegante per risolvere o un approccio migliore al tuo problema.

Altri suggerimenti

Se si desidera semplificare il processo, l'associazione del modello di percorso sembra essere la soluzione più semplice.Invece di dover recuperare l'istanza del modello corretta in ogni azione del controller, passi il modello corretto al controller durante il processo di routing.

Ma devi usare Route::resource.Nel file Routes.php:

Route::bind('company', 'Company');
Route::resource('company', 'HomeController');

Quindi hai un'istanza della categoria passata al tuo controller.Ad esempio per /company/1 :

public function show($company)
{
    // Here you can use, for instance, $company->name
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top