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アドレス(詳細) |
よく使うループ変数
プロパティ | 説明 |
---|---|
$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');
}
return view('books');
}
↓
③ビュー:/resources/views/books.blade.php
パーツ・テンプレート
@extends('layouts.app')
@section('title')
トップリスト
@endsection
@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の一部として設定して渡す方法
コード記述例 |
---|
|