XAMPPでLaravelの作業メモ01

いつも忘れるので、備忘録

 

環境構築

1.composerをインストール

composer 

https://getcomposer.org/download/

2.laravelをインストール

XAMPPのshellかパワーシェル上でhtdocsへ移動し、目的の場所に行き、コマンドを打つ

今回はXAMPP上でhtdocs内にblogというプロジェクトを作る。

 

以下 CRUD 参考

こっちのほうがわかりやすいか
Laravel 学習中
https://laraweb.net/basic_knowledge/

 

データベースの設定: マイグレーション

手順

  1. データベース側設定
  2. マイグレーションファイルの作成 :データベースの設計するファイル
  3. マイグレーションファイルの編集 :データベースへどういったファイルを入れるか書く
  4. マイグレーション実行:データベースへ反映
  5. サンプルデータを入れる。

 

データベース側設定

まずは、データベースを作り、そして表示させてみるか

今回 abcというプロジェクトを作る。

次にデータベース連携の.env にXAMPPの連携を修正

XAMPP側にもユーザ用意してテーブルも用意しておく
照合順序はutf8mb4_binに。

@see  laravel使うならmysqlのcollation指定はutf8mb4_binにしておくべき

マイグレーションファイルの作成

早速、実行

 

お、エラー

A CreateUsersTable class already exists.ってんだからもうあるってことかデフォとのあれか

じゃ、違うテーブルを用意するか

今回は見積もり書システムなので、そのままmitsumori

おk

イグレーションファイルの編集 :データベースへどういったファイルを入れるか書く

出来たファイルを見てみると

ざっくり必要なカラムを設計すると

まずは必要な部分だけ作るか。

見積書番号:
お客様名 :
弊社担当者:
タイトル :
小計額 :
消費税 :
税率  :
合計金額:
タイプスタンプ:
……この9個作る。

見積書番号:
$table->bigIncrements(‘id’);
必須と8桁のゼロフルにしたい。オートインクリメントにしたい。

参考:laravelのmigrationでintのカラムが勝手にAutoIncrementにされてハマった話
https://qiita.com/haruraruru/items/8ed08a5dfd719ebb9a2e
https://readouble.com/laravel/5.5/ja/migrations.html

じゃ、整数でオートインクルメントでいいか。

            $table->bigIncrements(‘id’);       //見積書番号
            $table->string(‘customer’);        //お客様名
            $table->string(‘staff’);           //弊社担当者:
            $table->string(‘title’);           //タイトル :integer
            $table->integer(‘sub_total’);      //小計額 :マイナスもあるかもなので、
            $table->integer(‘tax’);            //消費税額
            $table->tinyInteger(‘tax_rate’);   //税率
            $table->integer(‘total’);          //合計金額:
            $table->timestamps();              //タイムスタンプ

せっかくならコメント入れておくか。


 

※上記timestampsでエラーで迷走した。

マイグレーション実行:データベースへ反映

なんかエラーが出た

以下エラーの記録(´・ω・)ス

 

なんぞ?
Call to a member function comment() on null
ああ、カラム名が入ってないや。
タイムススタンプ空でおk

 

またコケた

なんぞ?

@SEE
php artisan migrate でずっこけたとき
https://qiita.com/oishis/items/88744f017601f3084ab7
最後に消して……だめか

無事にマイグレーションができたところで、DB確認ちゃんとカラムあること確認

次にダミーデータを入れてみる。

サンプルデータを入れる

1.シーダーファイルを作成
2.シーダーファイルの run() にサンプルデータを記述
3.DatabaseSeeder.php でシーダーファイルをコール
4.シーダーの実行

シーダーファイルを用意

コマンドを実行すると database/seeds/ に mitsumoriTableSeeder.php(シーダーファイル) が作成された。このファイルを編集してデータを入れる。

シーダーファイルの run() にサンプルデータを記述

 

これだといちいちデータを作るのか、調べると

らしい。

少しのデータならシーダでいいが、大量なのでfaker(フェイカー)とfactory(ファクトリー)を使うか。

/database/factories/MisumoriFactory.php というファイルができる。

TOOD ここはあと回しに。ダミーデータ作るのが面倒

 

これを一覧表示させてみる。

データベースから読み込み込んで一覧にしてみる

サーバ起動

このままだとXAMPPなので、URLが http://localhost/abc/public/なので、サーバを起動。
Laravelで作られたディレクトリー内で、

Ok,

ルーティングを使う

web.php

resources/views

わかりやすいルーティング

 

Route::get(‘/mitsumori’, function () {
    return view(‘mitsumori’);
// resources/views/mitsumoti.blade.php を読み出してくださいよと。
});

Viewはresources/viewsに記載
テンプレートはxxx.blade.php

View内に分ける場合、

メモ:ルーティングとビューでは処理が増えるので、コントローラーに書く
場所は/app/Http/Controllers/に書く

コントローラー書くにのは artisan を使う。

 

見積もりリストを作るコントローラーを作る。

 

web.phpにルートを記載


 

…とエラーがでるので、

上記をコントローラーに追加
参考:SQLクエリの実行
https://readouble.com/laravel/5.4/ja/database.html

コントローラーの記載は、

 


表示できた(´・ω・)ス

しかし、コントロールに書くのは次はモデルに記載する。

モデルを用意する記載する

モデルを作ると上記の$list = DB::select(“SELECT * FROM mitsumori“);という部分が省略できる。
早速モデルをartisanで作る。

app ディレクトリ直下にMitsumori.phpができる。

次にコントローラーのappの中のモデルを指定、

またエラーかテーブル名が複数形じゃなければだめか

表示ができたぞ、OKだな。
モデルがあれば、DBは複数形は忘れないようにしないとな。

 

配列に入れて表示する


ここで、ビューを指定して渡すことができる。

ビューの渡された値を表示

find
findOrFail
action(

ここで基本のCRUDをもう一度作るか。

@View
@yield イールド
@section
https://readouble.com/laravel/5.5/ja/blade.html

よしここで再度記述し直すか

 

 

 

 

Follow me!

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA