2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【PHP】Laravel 学習メモ / 簡易アプリで流れを掴む1(表示まで)

Last updated at Posted at 2019-11-07

###〜簡易アプリで流れを掴む1(表示まで)〜

PHPのフレームワークであるLaravelの流れを掴むために簡単なアプリを開発してみます。

2回に分けて実装していきます。
次回、
【PHP】Laravel学習メモ / 簡易アプリで流れを掴む2(受け取ったデータを計算して完成まで

##目標アプリ
入力した米ドルを日本円に換算する。

##開発環境:
PHP 7.1.23
Laravel Framework 5.8.35
Composer version 1.9.0

開発環境が一通り終わっているという状態からのスタートとします。

###公式ドキュメント 
https://readouble.com/laravel/

##今回の目標
以下の画面まで表示させる
スクリーンショット 2019-11-04 13.33.32.png

#プロジェクトの開始

cal_numberというプロジェクトファイルを作ります(名前は適当につけました)

コマンド

$ composer create-project --prefer-dist laravel/laravel cal_number

ディレクトリまで移動

$ cd cal_number

サーバーを立ち上げる

$ php artisan serve
//Laravel development server started: <http://127.0.0.1:8000>

#ルーティング

ファイル: routes/web.php

Laravelトップページを表示するためにデフォルトで下記の様に書かれています。

routes/web.php
Route::get('/', function () {
    return view('welcome');
});

それを表示するビューファイル: views / welcome.blade.php

views/welcome.blade.php

//〜略〜
<div class="content">
                <div class="title m-b-md">
                    Laravel
                </div>
//〜略〜

サーバーを立ち上げ、トップページにアクセスしてみます。

コマンド

$ php artisan serve

トップページURL: localhost:8000
(プロジェクトを作って、サーバーを立ち上げたときの8000という数字はポート番号であり、その通り8000にアクセスします)
ポート番号とは

以下の様に表示されます
スクリーンショット 2019-11-04 11.25.37.png

試しにLaravel → Laravel2に変えてみます。

views/welcome.blade.php

//〜略〜
<div class="content">
                <div class="title m-b-md">
                    Laravel2
                </div>
//〜略〜
スクリーンショット 2019-11-04 11.28.31.png

では、実装していきます。

Route::getはgetアクションを示します。
'/calculate'はURLのアクセス先。
'CalculateController@getcalc'はCalculateControllerのgetcalcを指します。(順番が逆になってしまいましたが、コントローラーは後ほどこの名前で作成することにします)。

リソースコントローラーにより処理されるアクションについては下記で確認できます。
Laravel公式ドキュメント コントローラー

routes/web.php
Route::get('/calculate', 'CalculateController@getcalc');

これで、
localhost:8000/calculateにアクセスすると、CalculationControllerのgetcalcアクションに処理の指示が渡ります。

#コントローラー
ルーティングでは、CalculateControllerという名前のコントローラーにに処理してもらうことにしてましたので、そのコントローラーを作ります。

コマンド

php artisan make:controller CalculateController

これでCalculateController.phpファイルが作られました。

app/Http/Controllers/calculateController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class CalculateController extends Controller{
}

ルーティングでは
localhost:8000/calculateにアクセスするとCalculateControllerのgetcalcに何か処理をやってもらうことになってましたので、まず次項でビューを作り、その次にそのビューを表示する処理をこのコントローラーに書くことにします。

#ビュー

まず、ビューのディレクトリを作ってみます。

コマンド

mkdir resources/views/calculate

これでcalculateディレクトリが作られましたので、ビューファイルを作ります。
ビューファイルはcalculateディレクトリで右クリックしてNew Fileとかを選択すれば作れます。

resources/views/calculate/num.blade.php
<html>
  <head>
     <title>計算アプリ</title>
  </head>
  <body>
     <h1>計算アプリです</h1>
  </body>
</html>

次にこのビューをディスプレイに映してみます。
移すためにはコントローラーで処理を書く必要がありました。

#コントローラーに処理を書く

コントローラーに、「localhost:8000/calculateにアクセスしたらnum.blade.phpというビューファイルを表示させる」処理を書きます。

app/Http/Controllers/calculateController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class CalculateController extends Controller
{
  public function getCalc(Request $request){
    return view('calculate.num');
  //calculateディレクトリのnum.blade.phpを表示する
  }
}

これでlocalhost/8000/calculateにアクセスすると
スクリーンショット 2019-11-04 13.33.32.png

無事表示されました。

#今回の処理の流れまとめ

・ルーティング(routes / web.php)で、「8000/calculateにアクセスするとCalculateControllerというコントローラーのgetCalcに処理をしてもらう」という設定を書く。

・コントローラーではルーティングから処理を依頼されたので、getcalc(){}の中に、処理したい内容を書く。今回は、「calculateディレクトリのnum.blade.phpを表示する」という処理。

・「8000/calculateにアクセスするとnum.blade.phpというビューファイルを表示する」準備が整ったので、表示したい内容を書く(今回は「計算アプリです」という一文のみ)。

・localhost:8000/calculateにアクセス

次回、
【PHP】Laravel学習メモ / 簡易アプリで流れを掴む2(受け取ったデータを計算して完成まで

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?