ひげめがねプログラム

初心者プログラマーの覚書となんかいろいろ

laravel開発のすすめ方【手順書】


毎回ページを新しく作るときのおおまかな流れメモ。
何も見なくてもできるようになりたいですねぇ。
※悪気なく間違いを書いてる可能性があります。。

【ここでつかうもの】

  • Controller(動き処理)
  • Model(DB処理)
  • Request(エラーチェック処理)
  • view(blade.php)
  • Route

ざっくりした流れです。

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を行ったりきたりバグと戦いながら完成を目指します。
以上( ^ω^ )

この塵クズのような内容よりめちゃんこ詳しく書いてあるところはこちら▼
qiita.com
laravel5.1だけどおおむね一緒のはず。
すごく詳しいんだけど一周まわってよくわからん!となってしまった耐え性のないぼく。