あなたはthis route for /dashboard
に言及している場合は、正しいです - デフォルトの設定では、外部コントローラクラスを使用していません:
$app->get('/dashboard/?', function() use ($app) {
// Access-controlled page
if (!$app->user->checkAccess('uri_dashboard')){
$app->notFound();
}
$app->render('dashboard.twig', []);
});
あなたはいくつかの選択肢を持っています。 existing controller classに新しいメソッドを追加したり、新しいコントローラクラスを作成したりすることもできます(新しいクラスを追加した後は、オートローダーに追加するにはcomposer update
を実行する必要があります)。
また、コントローラのロジックを上記のルートクロージャに直接追加することもできます。 EloquentモデルUser
、Group
などは、コントローラクラスと同様にルートクロージャと同じように簡単にアクセスできます。
最後に(これはユーザのリストを生成するためにお勧めします)、最初に1つのリクエストを使用してダッシュボードページを生成し、別のリクエストで実際のデータをフェッチし、クライアントサイドコード(Javascript)。これは実際には/users
ページがデフォルトでどのように機能するかです。
ブラウザコンソールを開いたまま/users
ページにアクセスした場合、別のリクエストが/api/users
になることがわかります。これは、ユーザーのリストを含むJSONオブジェクトを返します。たとえば:
{
"count": 5,
"rows": [
{
"id": 1,
"user_name": "admin",
"display_name": "Overlord",
"email": "[email protected]",
"title": "The New Kid",
"locale": "en_US",
"primary_group_id": 2,
"flag_verified": 1,
"flag_enabled": 1,
"flag_password_reset": 0,
"created_at": "2015-10-21 00:00:00",
"updated_at": "2016-06-22 17:14:57",
"last_sign_in_time": "2016-07-19 19:23:49",
"sign_up_time": "2015-10-01 00:00:00"
},
{
"id": 22,
"user_name": "armin",
"display_name": "Armin van Buuren",
"email": "[email protected]",
"title": "Cannon Fodder",
"locale": "nl_NL",
"primary_group_id": 0,
"flag_verified": 1,
"flag_enabled": 0,
"flag_password_reset": 1,
"created_at": "-0001-11-30 00:00:00",
"updated_at": "2015-12-07 12:37:14",
"last_sign_in_time": 0,
"sign_up_time": 0
},
{
"id": 20,
"user_name": "david",
"display_name": "David Guetta",
"email": "[email protected]",
"title": "Pyromancer",
"locale": "en_US",
"primary_group_id": 4,
"flag_verified": 1,
"flag_enabled": 1,
"flag_password_reset": 0,
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"last_sign_in_time": 0,
"sign_up_time": 0
},
{
"id": 13,
"user_name": "deadmau5",
"display_name": "Deadmau5",
"email": "[email protected]",
"title": "DJ Extraordinaire",
"locale": "en_US",
"primary_group_id": 3,
"flag_verified": 1,
"flag_enabled": 1,
"flag_password_reset": 0,
"created_at": "-0001-11-30 00:00:00",
"updated_at": "2016-03-29 14:37:24",
"last_sign_in_time": 0,
"sign_up_time": 0
},
{
"id": 23,
"user_name": "digweed",
"display_name": "John Digweed",
"email": "[email protected]",
"title": "DJ of the Future",
"locale": "en_US",
"primary_group_id": 3,
"flag_verified": 1,
"flag_enabled": 1,
"flag_password_reset": 0,
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"last_sign_in_time": 0,
"sign_up_time": 0
}
}
私たちは、その後、tablesorterで使用するために、このデータを変換するためにいくつかのカスタムコードhereとhereを使用しています。このようにすると、1つのリクエストでユーザリスト全体をロードし、テーブル全体が構築されている間にユーザを待たせるのではなく、サーバ側でページネーションを実行できるという利点があります。たくさんのユーザーがいる!)