みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Laravelの解説がよくわからないです。

http://ysktec.com/shiguregaki/blog/?p=1163
の.envの変更の部分
がよくわからないのですが、

DB_DATABASE=<事前準備で作成したデータベース名>
など三つのdbを作る部分は恐らくsqlを使ってDBをいじるという事でしょうが、
この記述をenvファイル内に記載してこのファイルを実行してテーブルなどを作るという事でしょうか?

phpmyadminで作っても結局同じなのでしょうか?

とても良いサイトなのですが
このサイトの説明がいまいちわかりません。

DB_DATABASE=<事前準備で作成したデータベース名>
これはどこに記載するのですか下記のマイグレーションファイル内ではないですよね?
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();

投稿日時 - 2017-10-23 12:35:06

QNo.9389025

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

件のページの記事では、
(1)事前準備としてDBを用意しましょう(MySQLにユーザーとDBを作る)。
(2)上で作ったDBに接続するための情報を .envに記述しましょう。
(3)そのDBに、テーブルを試しに作って、できたかを確認してみましょう。
を説明しているだけだけです。

(3)は、本来は作成中のアプリケーションの機能にあわせてテーブル設計をして
からマイグレーションファイルを作っておく必要がありますが
user,password_reset,migrations という3つのテーブルについては 
デフォルトのマイグレーション用のファイルが予め用意されているので
php artisan migrate
でこれでテーブルを作れることを 体験してみましょう。 ということですね。


あと、追加の細かい疑問点や確認点ですが

>の部分は自動的にデータベースを作るためのsqlをここに記載するという意味ではな
>かったという事ですか?

はい。(1)のデータベースを作る作業は 
自分でphpMyAdmin(またはコマンドライン)で行うので .envに書いたら
そのデータベースが勝手にできるということではありません。

件の記事にも
「以下にphpMyAdminを使ってMySQLのデータベース、ユーザを新規作成する方法をまとめました。ご参考にしてください。」とありますので
そのリンク先を参考に 同様の作業を行う必要があります。

> ここでphpmyadminで作ったデータベースにアクセスするためのIDPWなどという事だっ
たのでしょうか?

その通りです。

> つまりenvファイルはデータベースを作るためのsqlを書くファイルではなく、あくま
> でいつもアクセスするデータベースのpwとidを毎回記載するのは大変なので一度ここ
> に記載すると次から自動的に認証できるようにするためのファイルだったのですね。

その通りです。

> 下記を見ても肝心のsqlの内容が見当たらないのですがどこに内容や書き方がきさい
> されていますか
>マイグレーションの実行
>マイグレーションとはデータベースに保存されているデータを保持した状態で、テー
ブルの作成やカラムの変更などのデータベースの操作を行うための機能です。
>Laravelにはデフォルトで以下の2つのマイグレーションファイルがあります。

件の記事でいっている、「デフォルトで以下の2つのマイグレーションファイル」とは
---デフォルトであるマイグレーションファイル--------------------------
database/migrations/xxxx_xx_xx_xxxxx_create_users_table.php
database/migrations/xxxx_xx_xx_xxxxx_create_password_resets_table.php
---------------------------------------------------------------
と記載されているファイルのことです。

もちろん、このデフォルトのファイルだけでは、user,password_reset,migrations という
テーブルを作っているだけですので、
自分が作ろうとしているアプリのためのテーブルは これだけでは足りませんので
自分でテーブル設計した内容のテーブルを作ることになります。

このとき、Laravelでは、create table .... ; といったSQL文を直接書くのではなく、
このマイグレーションファイルで定義することになりますが
その方法が次のページの記事ですね。
コマンドで、モデルファイルとマイグレーションファイルを作ってから
マイグレーションファイルを テーブル設計に合わせて修正してから
マイグレーションを実行すると、そのテーブルが .envで指定したMySQLのDB上に
出来あがる。。。と。

投稿日時 - 2017-10-30 00:23:33

お礼

user,password_reset,migrations という三つのテーブルができるという事ですね。
最後の一つはなぜできるのでしょうか?
2つはphpファイルがあるのでわかりますが

sql文そっくりのphpファイルを作るとその文が実行されたのと同じ事になるのですね

投稿日時 - 2017-10-30 23:34:12

ANo.1

(1)まずは、該当アプリ用のDBの領域を作る
(2)そのDBに接続してアプリで使うデータに合わせたテーブルを(1)のDB内に作る
(3)そのDBに接続して事前に作っておいた(2)のテーブルをアプリから操作する
の区別をつけましょう。

.envに記載するのは、(1)で作ったDBに接続するための情報
(DBの ホスト名、DB名、DBのユーザ名、それのパスワード)
をアプリに教えるためであって、
言われているようなテーブルを作る(2)の処理ではありません。

これはLaravel固有の考え方ではなく、どんなWebアプリでもDBを使う場合は
似たようにして、DBの事前準備を行ってから、
その情報をアプリに教えるための設定を行います。
(Webアプリの基礎を知らないまま、
 いきなりフラームワークに取り組んでも途方に暮れることになりかねません
 と、いっていたのはこういう点です)

投稿日時 - 2017-10-23 15:20:23

補足

envはsqlをきさいするところでないと分かったのですが。マイグレーションはsqlを記載して実行すると自動的にテーブルなどができるようですね。

下記を見ても肝心のsqlの内容が見当たらないのですがどこに内容や書き方がきさいされていますか

マイグレーションの実行


マイグレーションとはデータベースに保存されているデータを保持した状態で、テーブルの作成やカラムの変更などのデータベースの操作を行うための機能です。
Laravelにはデフォルトで以下の2つのマイグレーションファイルがあります。

投稿日時 - 2017-10-29 22:16:35

お礼

>>>
.envの変更


.envファイルはアクセス先URLやデータベースの設定値など環境ごとに変わる情報をまとめたファイルになります。
事前準備で新規作成したデータベース名、データベースユーザ名、パスワードを変更します。
変更箇所を以下にまとめました。太字部分はお使いの環境に合わせて変更してください。

の部分は自動的にデータベースを作るためのsqlをここに記載するという意味ではなかったという事ですか?

その場合ここでやっているのは
http://ysktec.com/shiguregaki/blog/?p=1135
ここでphpmyadminで作ったデータベースにアクセスするためのIDPWなどという事だったのでしょうか?

つまりenvファイルはデータベースを作るためのsqlを書くファイルではなく、あくまでいつもアクセスするデータベースのpwとidを毎回記載するのは大変なので一度ここに記載すると次から自動的に認証できるようにするためのファイルだったのですね。

投稿日時 - 2017-10-29 14:36:29

あなたにオススメの質問