-
-
Save tommymarshall/ee41e5c49c39420a7957 to your computer and use it in GitHub Desktop.
<?php | |
// Home | |
Route::get('home', 'PagesController@home'); | |
// @about method always fires when viewing a page, no matter the page | |
Route::any('page' , [['about'], 'uses' => 'PagesController@about']); | |
Route::any('page' , [['vision'], 'uses' => 'PagesController@vision']); | |
Route::any('archive' , ['blog', 'uses' => 'BlogController@index']); |
Update: I made a mistake. I've tested again and in fact there is an issue when using an array
in place of a string. This needs a patch as soon as possible.
Regarding the form, I can't see any issues. When listening to a POST request, the methods is triggered correctly. Don't forget to add a Route::post()
otherwise this won't work.
I'm going to patch the framework this week so you'll be able to update it. Thanks for catching this one.
Hi tommy,
can you apply this "patch" on the themosis-framework
Route.php class located: themosis-framework/src/Themosis/Route/Route.php
. Replace the lines 102->112
by the following code:
if (!isset($action['params']))
{
// The first element passed in the action is used
// for the WordPress conditional function parameters.
$param = array_first($action, function($key, $value)
{
return is_string($value) || is_array($value);
});
if (is_string($param))
{
$action['params'] = (false !== strrpos($param, '@')) ? null : $action[0];
}
else if (is_array($param))
{
$action['params'] = $param;
}
}
I've also updated the master branch of the themosis-framework
so if you want to test this, simply update your composer.json
file to use the dev-master
package and run a composer update
.
Let me know how it goes. I will test this patch on several applications. If everything is ok, I will release a minor version of the framework so this can be fixed.
Regarding the POST
requests, let me know if you still get an error and otherwise, please paster your code so I can test it also.
Great! ran composer update
and that did the trick. Thanks a bunch! The POST requests still sadly do not work. Here's the code: https://gist.github.com/tommymarshall/e90112157a8d76c6d4f1
So, this is interesting, got it working using this syntax:
Basically instead of my pages ("about" and "vision") being passed as an array, just passing them as a string works. This if fine for me since I am not using ID's and have permalinks set up.
EDIT: Ah, just saw this is documented in "Other way to use a Controller" section at http://framework.themosis.com/docs/controllers/
The new issue appears to be that POST requests are not being matched, even though I am using
Form::open()
. Hmmm...