Laravel recuperar param no construtor da classe [duplicado]
Pergunta
Aqui é a minha rota:
Route::controller('/app/{companyId}/', 'HomeController', array('before' => 'auth'));
Como posso recuperar $companyId argumento __construtor para evitar a recuperação é separado em todas as minhas ações?
Solução
Se você deseja obter os parâmetros de __construção de seu controlador, você pode fazer este:
class HomeController extends \BaseController
{
public function __construct()
{
$this->routeParamters = Route::current()->parameters();
}
}
ele irá retornar um valor de chave lista de parâmetros para a rota (ex.: ['companyId' => '1']
) @consulte \Iluminar
outing
ota
Você também pode obter um parâmetro específico usando o getParameter() ou parâmetro() métodos.
NOTA: Eu não tenho certeza se isso é uma grande idéia tho.Pode haver uma forma mais elegante de resolver ou melhor abordagem para o seu problema.
Outras dicas
Se você deseja tornar o processo mais simples, rota de associação de modelo parece ser a maneira mais fácil de ir.Em vez de ter que buscar para o Modelo certo de instância em cada ação do seu controlador, você passa o Modelo certo para o seu controlador durante o processo de roteamento.
Mas você tem que usar o Route::recurso.No routes.php :
Route::bind('company', 'Company');
Route::resource('company', 'HomeController');
Em seguida, você tem uma instância de categoria passada para o controlador.Por exemplo, para /empresa/1 :
public function show($company)
{
// Here you can use, for instance, $company->name
}