仕事柄個人的にもお仕事をいただくことがあります。
今回はレガシーシステムをphpでリプレイスしたいという案件が入りそう。
laravelを使用するようなのですが、個人的には使ったことがないので、
早速環境構築して、サンプルを作ってみたいと思います。
今回はその第4回。(一旦の最終回となります)
第1回はこちら。
第2回はこちら。
第3回はこちら。
環境構築前提
基本的な構築はこちらでお話していたように、
vagrantによるubuntuの環境をベースにしたいと思います。
入力して登録してみよう
入力フォームを追加
前回作成したビューに社員ID、社員名を入力する部分を以下のように追加します。
<form method='POST' action="{{action('EmployeeController@create')}}">
@csrf
社員ID:<input type='text' name='id' value="{{old('id')}}"><br />
@foreach ($errors->get('id') as $errorMsg)
{{ $errorMsg }}<br />
@endforeach
社員名:<input type='text' name='name' value="{{old('name')}}"><br />
@foreach ($errors->get('name') as $errorMsg)
{{ $errorMsg }}<br />
@endforeach
<input type='submit' value='登録'>
</form>
@foreach ($items as $item)
{{ $item -> getData() }}<br>
@endforeach
Formの追加になります。
Formのactionはルーティング設定と同じように指定し、
action(コントローラクラス名@メソッド名)と記載します。
@csrfはクロスサイトリクエストフォージェリへの対策のための
トークン発行を行っています。
これをForm内に記載しないと、419エラーが発生し正しくactionが動作しません。
また、コントローラ側でvalidation(入力検証)を行った際の
エラー表示領域を設けています。
コントローラに登録メソッド追加
コントローラに登録メソッドを以下のように追加します。
public function list (Request $request)
{
$items = Employee::all();
return view ('employee.list', ['items' => $items]);
}
public function create(Request $request)
{
//入力チェック
$this->validate($request, [
'id' => 'required|max:3',
'name' => 'required',
]);
$employee = new \App\Employee;
$employee->employee_id = $request->id;
$employee->employee_name = $request->name;
$employee->save();
return redirect()->to('list');
}
入力チェックでは、社員ID、社員名はともに必須入力であり、
社員IDは最大3桁であることを検証しています。
入力チェックがOKであった場合には、
モデルクラスを新規作成し、値を挿入し登録(insert)しています。
登録後は同じ画面へのリダイレクトをするようにしています。
※データベース側での一意制約などは今回チェックはしていません。
モデルに作成日、更新日のカラムの未使用を設定
このまま登録をしてしまうと、モデルの基底クラスにて
作成日(created_at)、更新日(updated_at)のカラムもinsertしようとします。
今回作成したテーブルにはそのカラムは存在しないので、
未使用とするようモデル内に以下の記述を追加します。
class Employee extends Model
{
// created_at、updated_atカラムがないので使用しないよう設定
const CREATED_AT = null;
const UPDATED_AT = null;
public function getData()
{
return 'id:'. $this->employee_id. ' name:'. $this->employee_name;
}
}
ルーティング設定
ルーティングとして以下を追加します。
Route::post('/create', 'EmployeeController@create');
ここまでの設定にてデータを入力し登録すると、
一覧に登録した内容が追加されていることが確認できると思います。
一旦まとめ
vagrantに仮想環境を作成し、Laravelのサンプルとして
社員IDと名前を入力して登録するまでの流れを
実装してみました。
ここまでの流れがわかれば、
あとは必要に応じて深いところまで知識を深める
土台としては十分できたのかなと思います。
まだ実際に仕事でお世話になってはいませんが、
いつか仕事で出会える日を夢見て・・・。
それでは!
20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。
今風にいうとフルスタックエンジニアということになるのでしょうか??
→ 詳細プロフィールというか、生い立ちはこちら
→スキルシートをご覧になる場合はこちら
→お仕事のご依頼やお見積りなどお問い合わせはこちらから!