質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

1500閲覧

laravel データベース

RyomaMinagi

総合スコア32

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/10/04 09:01

現在、laravel5.5を使ってテーブルを作成しようとしています。

リファレンスを見て、修飾子をつけていったのですがエラーで進みません。

user_id integer primary_key / auto_increment
name varchar(20) not null
pass varchar(20) not null
image_pass varchar(89) default('default')
birthday_year integer
birthday_month integer
birthday_day integer
gender_id char(1) not null
mail varchar(89) not null / unipue

このような形でテーブルを作成したいのですが
以下のコードをどのようにして変更すれば通ってくれるでしょうか?
また調べていると,nullの値を許容する修飾子はあったのですが
notnullの修飾子は見当たらなかったのですが、もしかしてlaravelでは元がnotnullなのですか?
よろしくお願いいたします。

Schema::create('users', function (Blueprint $table) { $table->integer('user_id'); $table->string('name', 20); $table->string('pass', 20); $table->string('image_pass', 89); $table->integer('birthday_year'); $table->integer('birthday_month'); $table->integer('birthday_day'); $table->integer('gender_id'); $table->string('mail', 89); $table->rememberToken(); $table->timestamps(); });

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

notnullの修飾子は見当たらなかったのですが、もしかしてlaravelでは元がnotnullなのですか?

その通りです。

php

1Schema::create('users', function (Blueprint $table) { 2 $table->increments('user_id')->primary(); 3 $table->string('name', 20); 4 $table->string('pass', 20); 5 $table->string('image_pass', 89)->nullable()->default('default'); 6 $table->integer('birthday_year')->nullable(); 7 $table->integer('birthday_month')->nullable(); 8 $table->integer('birthday_day')->nullable(); 9 $table->integer('gender_id'); 10 $table->string('mail', 89)->unique(); 11 // $table->rememberToken(); 12 // $table->timestamps(); 13 });

上記のようになるかと思われます。
rememberTokenとtimestampsは必要なのかどうかこちら側では分かりませんでしたので、コメントアウトしています。

なお、Laravelは標準だとカラム名idを主キーとして認識しているので、問題がなければuser_ididとしたほうが良いでしょう。

投稿2017/10/04 09:19

fagai

総合スコア2158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RyomaMinagi

2017/10/04 09:31

いつもいつもありがとうございます( ;∀;) user_idをidに変更して、primary();を外すと通ってくれました( ;∀;) もう二点ほどお伺いさせて頂きたいのですが、 remenberTokenの使い道と、timestampsのオートインクリメント化の方法をお教えいただきたく思います( ;∀;)
fagai

2017/10/04 09:39 編集

ああ、primaryは別でつけなきゃいけなかったかもですね。。。ちょっとこのあたりはちゃんと覚えてないです。 remember_tokenは標準の認証の継続ログイン機能に利用するカラムです。 https://readouble.com/laravel/5.5/ja/authentication.html#remembering-users timestampsはEloquentモデルを利用していればsave時に自動的につきます。
RyomaMinagi

2017/10/11 04:00

ご返事が遅れました!なるほど!! ありがとうございました♪( ´▽`)
RyomaMinagi

2017/10/11 04:01

もう一点、別件でご質問がございますので また別で質問を挙げておきますのでご回答お願いします( ;∀;)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問