====== Apricot ホーム画面 ====== --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-08// [[apricot:top|Apricot に戻る]] 関連記事 * [[apricot:configuration|Apricot プロジェクトの作成]] * [[apricot:public|Apricot 公開フォルダ]] * [[apricot:core:top|Apricot コア]] * Apricot アプリ * [[apricot:app:top|Apricot アプリ作成の準備]] * Apricot ホーム画面 * [[apricot:app:error|Apricot エラー画面]] * [[apricot:app:db-model|Apricot データベースとモデル]] * [[apricot:app:user-list|Apricot ユーザ一覧画面]] * [[apricot:app:user-edit|Apricot ユーザ登録画面]] * [[apricot:app:validation|Apricot バリデーション]] * [[apricot:app:transaction|Apricot トランザクション]] * [[apricot:ext:middleware|Apricot 拡張]] アプリのホーム画面を作ります。\\ 画面の作り方の基本は[[apricot:app:top#スタブ画面|スタブ画面]]と同じです。本章の前にそちらもご覧下さい。 ---- ===== ルーティング ===== 以下のように config/routes.php を変更し、ホームコントローラのルートを作ります。 {{fa>folder-open-o}} ** /apricot/config ** getRouteBase(); $r->addGroup($base, function (FastRoute\RouteCollector $r) use($base) { // Home $r->get ('/home', 'HomeController@index'); $r->get('/', function() use($base){ header("Location: " . $base.'/home'); }); // Stub $r->get('/stub[/{no:\d+}]', 'StubController@index'); }); }; * /home --- ホームコントローラへのルート * /stub --- スタブコントローラへのルート * / --- ホームコントローラ(/home)へリダイレクト ルーティング設定に関しては[[https://github.com/nikic/FastRoute|FastRoute]]を参照して下さい。 \\ ===== ホームコントローラ ===== Controller を継承してホームコントローラを作ります。 {{fa>folder-open-o}} ** /apricot/app/Controllers ** env('APP_NAME')]); return render('home',['message'=>$message]); } } * ''__()'' はトランスレータ [[apricot:core:basic-class#langクラス|Core\Lang::get()]] を呼び出すヘルパー関数です。\\ トランスレータへの引数は言語テキスト(assests/lang/ja/messages.php)のキーです(ドット表記)。 * ''env()'' は環境設定を取得する[[apricot:core:top#ヘルパー|ヘルパー関数]]です。 * ボイラープレートのrender()関数を呼び出してレスポンスをレンダリングしています * **render(string $view=null, array $variables=[])** - $view : テンプレート名\\ 上例では assets/views/home.blade.php がテンプレートファイルになります - $variables : テンプレート変数の連想配列\\ 上例では $message をテンプレートに渡しています。 \\ ===== HTMLテンプレート ===== 以下にホームコントローラのindexアクションでレンダリングしているHTMLテンプレートを示します。 {{fa>folder-open-o}} ** /apricot/assets/views ** {{-- 親レイアウト --}} @extends('layout') {{-- 追加スクリプト --}} @push('scripts') @endpush {{-- タイトル --}} @section('title') @endsection {{-- コンテンツ --}} @section('content')

{{__('messages.home.title')}} {{env('APP_VERSION')}}

{{$message}}
@endsection
* ''extends'', ''push'', ''section'' の各ディレクティブについては、[[apricot:app:top#htmlテンプレート|スタブ画面]] を参照して下さい。 * ボイラープレート'' __()'', '' env()'', '' url_ver()'' については、[[apricot:app:top#layoutbladephp|layout.blade.php]] を参照して下さい。 \\ ==== 画像ファイル ==== HTMLテンプレートで使用している画像 apricot.jpg は apricot/public/img の下に設置して下さい。 {{fa>folder-open-o}} ** apricot/public/img **\\ apricot.jpg\\ {{:apricot:apricot.jpg?360px}} \\ ===== 翻訳テキスト ===== ホーム画面用の翻訳テキストを言語ファイル( messages.php )に追加します。 {{fa>folder-open-o}} ** apricot/assets/lang/ja ** [ 'title'=>env('APP_NAME'), 'msg_hello'=>'Hello, :account !', ], ]; \\ ===== テスト実行 ===== ホーム画面を表示してみましょう。ブラウザ上で以下のURLにアクセスしてみて下さい。 http://localhost/ws2019/apricot/public/ 次の画面が表示されます [{{apricot:app:app02.png?nolink}}] ■ [menu1],[menu2],[menu3]を押すとそれぞれのスタブ画面が表示されます。\\ ■ [About Me]を押すと [[http://y2sunlight.com/ground/doku.php?id=apricot:top|y2sunlight.com]] が開きます。 \\