Pregunta

Aquí está mi ruta:

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

¿Cómo puedo recuperar el argumento $companyId en __constructor para evitar recuperarlo por separado en todas mis acciones?

¿Fue útil?

Solución

Si desea obtener los parámetros en el __construct de su controlador, puede hacer esto:

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

devolverá una lista de valores clave de parámetros para la ruta (por ejemplo: ['companyId' => '1']) @ver \Illuminate\Enrutamiento uta

También puede obtener un parámetro específico usando el obtener parámetro() o parámetro() métodos.

NOTA: Aunque no estoy seguro de que sea una gran idea.Puede que haya una forma más elegante de resolver o abordar mejor su problema.

Otros consejos

Si desea simplificar el proceso, la vinculación del modelo de ruta parece ser la forma más sencilla de hacerlo.En lugar de tener que buscar la instancia del Modelo correcto en cada acción de su controlador, pasa el Modelo correcto a su controlador durante el proceso de enrutamiento.

Pero tienes que usar Route::resource.En rutas.php:

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

Luego tiene una instancia de categoría pasada a su controlador.Por ejemplo para /empresa/1 :

public function show($company)
{
    // Here you can use, for instance, $company->name
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top