NO IMAGE

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

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

 

 

 

 

NO IMAGE
最新情報をチェックしよう!
>最強のWordPressテーマ「THE THOR」

最強のWordPressテーマ「THE THOR」

システムの構築・保守運用「   」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG