1

AltoRouter では、 で始まるすべてのリクエストを/customerファイルに渡しpath/to/CustomerController.php、そこで特定の一致をすべて実行する必要があります。

ではCustomerController.php、すべてのメソッドが一致します。つまり、次のようになります。

public static function Transfer(){... this will be invoked from /customer/transfer...
public static function Register(){... this will be invoked from /customer/register...

Laravel では、次の方法でこれを行うことができます。

Route::controller("customer", 'CustomerController');

まったく同じことが必要ですが、AltoRouter が必要です。私はそれを行う方法を見つけることができません

http://altorouter.com/

(サイト上のすべてのコントローラーメソッドを処理するルートファイルのみを1つだけ持ちたくはありませんが、各コントローラーに特定のルートのメソッドをすべて処理させます)

4

1 に答える 1

0

ドキュメントで次のコード スニペットを見つけました。

// map users details page using controller#action string
$router->map( 'GET', '/users/[i:id]/', 'UserController#showDetails' );

それでも解決しない場合は、私のルーターSailをチェックしてください。プログラマーがよりオブジェクト指向の方法で API を構築できるようにするために、私はそれを構築します。

編集

Sail でこれを解決する方法の例を次に示します。

use Sail\Sail;
use Sail\Tree;
use Sail\Exceptions\NoSuchRouteException;
use Sail\Exceptions\NoMiddlewareException;
use Sail\Exceptions\NoCallableException;

require '../vendor/autoload.php';

$sail = new Sail();

class UserController extends Tree {

    public function build () {
        $this->get('transfer', function($request, $response) {
            self::transfer($request, $response);
        });

        $this->get('register', function($request, $response) {
            self::register($request, $response);
        });
    }

    public static function transfer(&$request, &$response) {
        //do your stuff
    }

    public static function register(&$request, &$response) {
        //do your stuff
    }
}

$sail->tree('customer', new UserController());

try {
    $sail->run();
} catch (NoSuchRouteException $e) {
    echo $e->getMessage();
} catch (NoMiddlewareException $e) {
    echo $e->getMessage();
} catch (NoCallableException $e) {
    echo $e->getMessage();
}
于 2016-03-25T10:46:28.263 に答える