Cześć,
Mam mały problem z routingiem w laravelu 4.1. Wiem, że można problem obejść ale wolę się dowiedzieć przyczyny czemu tak jest.
Mam BaseController który dziedziczy po Controller:
<?php abstract class BaseController extends Controller { protected $layout; protected function setupLayout() { if (!is_null($this->layout)) { $this->layout = View::make($this->layout); } } }
Następnie mam routing:
Route::match(['GET', 'POST'], '/dupa/{action?}', function($action = 'find'){ $dupa = new DupaController; return $dupa->{$action}(); })->where(['action' => '[a-z]*']);
I dostaję błąd z tego powodu że w kontrolerze próbuję odwołać się do obiektu, który jest stringiem
<?php class DupaController extends BaseController { protected $layout = '_layouts.test'; public function find(){ $this->layout->content = View::make('dupa.find'); } }
W przypadku gdy ustawię routing jak poniżej wszystko śmiga aż miło:
Route::get('/dupa', 'DupaController@find');
Jaka jest przyczyna?
Pozdrawiam,
ak