毎回ページを新しく作るときのおおまかな流れメモ。
何も見なくてもできるようになりたいですねぇ。
※悪気なく間違いを書いてる可能性があります。。
【ここでつかうもの】
- Controller(動き処理)
- Model(DB処理)
- Request(エラーチェック処理)
- view(blade.php)
- Route
ざっくりした流れです。
- Controllerページをつくる
- Controllerに必要なfunction書く(中身は空)
- Route書き込む
- functionがきちんと飛ぶかURLたたいて確認
- Model書く
- Controller内部の処理を書き込む
- view書く
- Requestでバリデーション書く
- あとは書いて書いて仕様書どおりの動きができるまで書く
Controllerページをつくる
コマンドプロンプトからたたいてcontroller作成もできるみたいですがわたしは直接フォルダにphpファイルを作成しています。
TestController.php をControllerフォルダへ作り、<?php namespace App\Http\Controllers\Test; use App\Http\Controllers\AbstractController; class TestController extends AbstractController { //ここにfunctionかいてく } ?>
こんな感じ。
Controllerに必要なfunction書く(中身は空)
<?php namespace App\Http\Controllers\Test; use App\Http\Controllers\AbstractController; class TestController extends AbstractController { public function index(){ } public function search(){ } } ?>
そのページに必要なfunctionをずらっと書いてく。
Route書き込む
<?php Route::get(‘test’, ‘TestController@index’)->name(‘test’); Route::get(‘test/search’, ‘TestController@search’)->name(‘test/search’); ?>
functionがきちんと飛ぶかURLたたいて確認
さっき書いたRouteがちゃんと通っているかURLを直接入力して確認する。
ちゃんと通ってたら真っ白ページが表示される。
注意 getなら真っ白でOKだけどpostは表示はできないので注意。URL直接入力してもエラーなるよ。
Model書く
DBの処理を書くところ。ここは書く処理こそ違うけどControllerに激似。まぁどこも似たようなもんですが。
ここでは仮にTestmodel.phpファイルをModelフォルダに作ったとします。<?php namespace App\Http\Models; use App\Http\Models\AbstractModel; class Testmodel extends AbstractModel { //中身も書くよ } ?>
そのページにはどんなデータが必要なのか仕様書をよく見て処理を書いてく。
Controller内部の処理を書き込む
<?php namespace App\Http\Controllers\Test; use App\Http\Controllers\AbstractController; class TestController extends AbstractController { public function index(){ //中身を書く } public function search(){ //中身を書く } } ?>
ある程度書いたらviewへ。
view書く
HTMLとかCSSとかjavaScriptも絡んできます。
laravelは「@extend」とか使えるので便利。@extends(‘layout’) @section(‘script’) //javaScript処理 @endsection @section(‘style’) //そのページのCSS処理 @endsection @section(‘content’) //ページの中身 @section
共通化したいjavaScriptとかCSSは別途「common.js」「common.css」つくってそこに書く。
毎回書くのが面倒なmetaとかも共通headerに書いてる。
Requestでバリデーション書く
エラーチェックです。TestRequest.phpファイルをRequestフォルダに作ったとする。<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; class TestRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * @return array */ public function rules() { //検索時にエラーチェックかけたかったら if ($this->path() == ‘test/search’) { return[ //ここにチェックしたいフィールド指定してエラーチェックをごりごり書く ’testCode’=> ‘requied|numeric’, ]; } return [ ]; } }
RequestがかけたらこのRequestが通るようにしないとなのでControllerに<?php namespace App\Http\Controllers\Test; use App\Http\Controllers\AbstractController; //追記↓ use App\Http\Requests\TestRequest; use Illuminate\Http\Request; class TestController extends AbstractController { public function index(TestRequest $request){ } public function search(TestRequest $request){ } } ?>
と書くとその処理通る前にエラーチェックができる。
あとは書いて書いて仕様書どおりの動きができるまで書く
Controllerやview、Requestを行ったりきたりバグと戦いながら完成を目指します。
以上( ^ω^ )