サイトアイコン たーちゃんの「ゼロよりはいくらかましな」

【php】laraveるsampる -第3回-

仕事柄個人的にもお仕事をいただくことがあります。

今回はレガシーシステムをphpでリプレイスしたいという案件が入りそう。

 

laravelを使用するようなのですが、個人的には使ったことがないので、

早速環境構築して、サンプルを作ってみたいと思います。

 

今回はその第3回。

第1回はこちら

第2回はこちら

 

 

 

環境構築前提

基本的な構築はこちらでお話していたように、

vagrantによるubuntuの環境をベースにしたいと思います。

 

 

各種設定

vagrantの仮想環境とフォルダ同期させる

Laravelのアプリを作成しても、クライアント側でソースを

書き換えてアップロード・・・という流れでは効率がよくないので、

Ubuntu側のディレクトリとクライアント側のフォルダを同期させてしまいましょう。

Vagrantファイルを以下のように編集します。

config.vm.synced_folder "C:\\temp\\laravel_sample", "/home/vagrant/sample/"

 

これでC:\\temp\\laravel_sampleがUbuntuの/home/vagrant/sample/と

同期されます。

 

 

Mysql接続設定

アプリケーションのルートディレクトリ配下に.envというファイルが

存在していると思います。

DB接続設定はこちらに記載していきます。

※WinSCPなどのsshクライアントによっては.envは隠しファイルとして扱われていて、

表示されないことがあります。

表示されていない場合は、sshクライアントの設定を確認しましょう。

 

今回は以下のように設定します。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=root
DB_PASSWORD=<rootパスワード>

 

MVC別実装

LaravelはMVCフレームワークなので、

それぞれ実装が必要になります。

また、URLごとに処理を振り分けるためのルーティング設定も

必要になります。

それぞれの実装について記載していきます。

 

Model作成

以下のコマンドでEmployeeモデルを作成しましょう。

php artisan make:model Employee

 

作成したものはappフォルダ配下に作成されます。

作成しただけだとメソッドが何もないので、

画面表示で使用するためのメソッドを以下のように作成しましょう。

 

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Employee extends Model
{
    public function getData()
    {
        return 'id:'. $this->employee_id. ' name:'. $this->employee_name;
    }
}

 

※ここでEmployeeというクラス名だと、自動生成されるSQLでは、

テーブル名をEmployeesとして検索することになりますので、

注意が必要です。

 

コントローラの作成

以下のコマンドでコントローラを作成しましょう。

php artisan make:controller EmployeeController

 

作成したものはapp/Http/Controllers配下に作成されます。

画面表示のためのメソッドを追加しましょう。

<?php

namespace App\Http\Controllers;

use App\Employee;

use Illuminate\Http\Request;

class EmployeeController extends Controller
{
    public function list (Request $request)
    {
        $items = Employee::all();
        return view ('employee.list', ['items' => $items]);
    }
}

 

 

ビューの作成

resources/view配下にemployeeフォルダを作成し、

list.blade.phpを作成し以下のように記述します。

@foreach ($items as $item)
    {{ $item -> getData() }}<br>
@endforeach

 

 

ルーティング設定

まずはテーブルのselect結果をただ出力するまでの

設定を進めていきましょう。

まずは、ルーティングの設定です。

routes/web.phpに以下を追加しましょう。

Route::get('/list', 'EmployeeController@list');

 

これは/listにアクセスが来た場合には、

EmployeeControllerのlistメソッドを実行するということになります。

 

ここまで設定してくると、http://<ホスト>:<ポート>/listでアクセスすると、

Employeesテーブルの中身が画面に出力されていると思います。

 

次回は

社員IDと名前を入力して登録するまでの流れを

実装してみたいと思います。

 

それでは!

 


にほんブログ村


人気ブログランキング

モバイルバージョンを終了