Skip to content

Instantly share code, notes, and snippets.

@tommymarshall
Created January 9, 2015 23:11
Show Gist options
  • Save tommymarshall/ee41e5c49c39420a7957 to your computer and use it in GitHub Desktop.
Save tommymarshall/ee41e5c49c39420a7957 to your computer and use it in GitHub Desktop.
Themosis Routes
<?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']);
@jlambe
Copy link

jlambe commented Jan 12, 2015

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.

@jlambe
Copy link

jlambe commented Jan 13, 2015

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.

@jlambe
Copy link

jlambe commented Jan 13, 2015

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.

@tommymarshall
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment