ララアシスト ~Web技術を身近に~ 千葉県旭市 パソコンスクール プログラミング ララアシスト






Laravel コマンド一覧

Laravel 基本コマンド

目的 コマンド
プロジェクト作成(バージョン指定) composer create-project laravel/laravel 〇〇 6.* --prefer-dist
開発サーバ 起動 php artisan serve --port=〇〇
開発サーバ ホスト指定起動(例)自ホスト、ポート80番 php artisan serve --host=0.0.0.0 --port=80
シーダ―でメモリ不足になった場合 php -d memory_limit=512M /usr/local/bin/composer require hoge


目的 コマンド
マイグレーションファイル 作成 php artisan make:migration create_テーブル名_table --create=comments
シーダファイル 作成 php artisan make:seeder テーブル名(先頭大文字)TableSeeder
モデル作成 php artisan make:model モデル名(先頭大文字)
コントローラ 作成 php artisan make:controller テーブル名(先頭大文字)Controller
ルート定義の確認 php artisan route:list


ディレクトリ構成一覧

フォルダ名 説明
app アプリケーションのコアコードを配置する。コントローラ・モデルも基本的にこのフォルダに配置する。
bootstrap フレームワークの初期起動やオートローディングの設定を行う起動コードファイルを含んている。その中のcacheディレクトリは初期処理のパフォーマンスを最適化するため、フレームワークが生成するいくつかのファイルが保存されるフォルダ
config アプリケーションの全設定ファイルが配置されている
database データベースのマイグレーションと初期値設定(シーディング)を配置する。また、このファイルをSQLiteデータベースの設置場所としても利用できる。
public フロントコントローラとアセット(画像、JavaScript、CSSなど)を配置する。DocumentRootになるディレクトリ。URLから直接アクセスできるフォルダ。
resources ビューやアセットの元ファイル(LESS、SASS、CoffeeScript)、言語ファイルを配置する。
routes ルート定義を行うファイルを置く。Web.phpとapi.phpがありapi.phpはAPIを利用する場合との使い分けとなる。
storage app、framework、logsディレクトリの3つのフォルダがある。appディレクトリはアプリケーションにより使用されるファイルを保存するために利用する。frameworkディレクトリはフレームワークが生成するファイルやキャッシュに利用される。最後のlogsディレクトリはアプリケーションのログファイルが保存される。
tests 自動テストを配置する。サンプルのPHPUnitテスト(PHP単体で出釣ソするツール)が最初に含まれている。
vendor Composerでインストールしたパッケージが配置される。基本的にはこのパッケージを直接触ることはない。


最初に覚えておくこと

  • /.env(環境設定/DB設定)
  • /config/app.php(アプリケーション基本設定)
  • /routes/web.php(ルート定義)
  • /resources/views/以下(ビュー・HTMLなどの表示要素を設定)
  • /app/Http/Controllers/以下(コントロール/モデルを設定)


カラム型の一覧

カラム型 説明
$table->increments['???']; INTを使用したID自動採番(主キー)
$table->bigIncrements['???']; BIGINT を使用したID自動採番(主キー)
$table->id[]; bigIncrements['id']のエイリアス
(Laravel7.x移行)
$table->string['???']; VARCHAR カラム
$table->string['???', 100]; VARCHAR、長さ指定カラム
table->integer['???']; INTEGER カラム
$table->bigInteger['???']; BIG INTEGERカラム
$table->decimal['???']; 少数を扱うカラム
$table->text['???']; TEXT カラム
$table->datetie['???'}; DATETIME カラム
$table->timestamps[]; created_at と updated_at カラムの追加
$table->boolean['???']; true、flase カラム


migrate コマンド一覧

コマンド名 説明
migrate マイグレーションファイルを実行する
migrate:install migrations テーブルを作成する
migrate:refresh マイグレーションを再実行してテーブルを再構築する。
テーブルとデータの初期化
migrate:reset すべてのマイグレーション操作を元に戻す(全削除)
migrate:rollback 1つ前のマイグレーション操作した情報に戻す
migrate:status マイグレーションファイルと実行状態を確認できる


すべてのテーブルはマイグレーションを使用して定義変更する。
一度実行したマイグレーションファイルは「php artisan migrate」コマンドで再度実行しようとしても実行されない。
Laravelではmigrationsテーブルで実行した履歴を管理しているため、一度実行したマイグレーションファイルは実行しない仕組になっている。

カラム修飾子(一部)

詳細はここ
  • $table->string('???')->nullable(); //カラムにNULLを許可する
  • $table->string('???')->unique(); //指定したカラムの値を一意にする
  • $table->string('???')->comment('???'); //コメントを追加する



テーブルとモデルは、暗黙的に関連付けられる。
(例)テーブル名はnotes(末尾に「s」)、モデル名はNote(頭文字が大文字、sの無い単数形)

バリデーションルールの一覧

ルール名 説明
required 入力値が空・NULLはNG
string 文字列はOK
numeric 数値はOK(小数はOK)
integer 整数値はOK(小数はNG)
min 入力値が指定された数値以上はOK
max 入力値が指定された数値以下はOK
date 年月日もしくは年月日時分秒はOK
nullable NULLもOK
unique 入力値が指定されたテーブルに存在しなければOK
email Emailアドレス(詳細


よく使うループ変数

プロパティ 説明
$loop->iteration この処理中の繰返している回数
$loop->count このループが回る数
$loop->first このループの最初
$loop->last このループの最後
$loop->even この処理が偶数回目か判定
$loop->odd この処理が奇数回目か判定


ルーティング・コントローラ・ビューの流れ

①ルーティング:/routes/web.php
Route::get('/books, 'BooksController@index');

②コントローラ:/app/Http/Controllers/BooksController.php
public function index(){
  return view('books');
}

③ビュー:/resources/views/books.blade.php
パーツ・テンプレート
@extends('layouts.app')
@section('title')
トップリスト
@endsection

ベース・テンプレート
						
	<!DOCTYPE html>
	<html lang="ja">
	<head>
	<meta charset="utf-8">
	<title>
	  @yield('title')
	</title>
						
					


SESSION ファサードの使用例

SESSION ファサード 使用例
SESSIONへデータ登録 Session:put("message", "本登録が完了!");
SESSIONからデータ取得 Session::get("message");
SESSION から1データ削除 Session::forget("message");
SESSION から全データ取得 Session::all()
SESSION から全データ削除 Session::flush();
SESSION に存在するかの確認 Session::has("message");


blade内でパラメータをURLの一部として設定して渡す方法

コード記述例
								
     <form action="{{ url('book/' . $book->id . '/'
      . {{ $book->name }}. '/' . $isbn) }}" method="POST">
        
        <button> type="submit" class="btn btn-primary">登録</button>
	
        </form>