2016-12-13 8 views
2

タイトルに記載されているとおり、モデルとデータベースの間の規約に関する問題が発生しています。私は "Media"という名前の新しいモデルを作成しました。私のデータベースでは、 "medias"という名前の新しいテーブルを作成しました。ララベル|モデル/データベースの規約が期待どおりに機能しない

ドキュメントに続いて、Laravelはテーブル名がモデル名の複数であることを前提としています。私の場合、実際には機能していないので、目的の動作を得るために、プロパティテーブルを手動で設定する必要があります。

ラーバルバージョン:5.3 マンプ| PHP 7.0.13

本当にありがとうございます。

+0

ようこそを書くことができますどちらか!これは実際には言語的な問題です。[複数のメディアとは何ですか](http://blog.oxforddictionaries.com/2016/02/plural-of-media/)を見てください。 Laravelは多元化の面ではかなりスマートです:) – Paul

+0

はい私はこの議論への答えを見たときに私の間違いを認識しました。私はフランス語を話すので、フランス語では複数のメディア...あなたの時間をありがとう。 –

+0

私はそれをよく理解しています、英語は母国語でもありません。あなたの疑いが明らかになったら、あなたを最も助けてくれた答えを受け入れることができます。 – Paul

答えて

1

Mediaは例外です。 Laravelは、mediaの複数形がないことを知るのに十分にスマートです。だから代わりにmediaテーブルを作成する必要があります。

あなたはすべての例外をhere見ることができます:

Words that should not be inflected. 

private static $uninflected = array(
    .... 
    '?*media', 
    .... 
); 
+1

私はこの単純な問題に苦労しました。なぜなら、フランス語では、あなたが期待しているように「メディア」という複数の「メディア」が存在するからです。私は言語の違いについて考えなかった、答えをありがとう。 –

+0

喜んで助けました。 ) –

0

メディアミディアムの複数形です。

だからmedia名前を持つテーブルを作成することができたり、メディアのモデルでは、あなたがこの、

protected $table = 'medias'; 
関連する問題