2016-07-18 1 views
0

を認識しません。なぜ私が大会に従っている場合にIDを追加しなければならないのですか? (または少なくとも私はそう考える)。これはuser_id列と同じ規則に従います。id_setterは必要ありません。Laravelの関係は、私はそれらのスキーマを持っている

+0

テーブル名のアンダースコアと関係がある可能性がありますか? – Sam

+0

これは私が思ったものですが、ドキュメントで何も見つけられませんでした@Sam – Alan

+0

ドキュメントをすばやく読みました。あなたの 'Ticket'関数の名前を' ticket_reason() 'に変更して、外部キー?もしそうなら、これを答えとして追加してドキュメントにリンクすることができます。 – Sam

答えて

1

私は、LaravelのEloquentのこのドキュメントのドキュメントに誤りがあります...外来キーがどのように自動生成されるかはあまり明確ではありません。 (強調鉱山)けれども、私は、Eloquent Relationships pageから、これを見つけた:

雄弁はUserモデルにidPhoneモデルからuser_idに一致するようにしようとします。 Eloquentは、デフォルトの外部キー名をと指定して、関係メソッドの名前を調べ、メソッド名の後に_idという接尾辞を付けます。

あなた(自分自身など)が想定しているのとは異なり、外部クラスの名前によって外部キーは生成されません。代わりに、それはあなたの::belongsTo()(またはhasOne()など)の呼び出しがしているメソッドの名前を使用しています。


これはpublic function reason() {}ニーズがpublic function ticket_reason() {}に変更することを意味します。もちろん、カラム名をreason_idに変更することもできます。

+0

素晴らしい、ありがとう! – Alan

関連する問題