给定表名的Laravel类名是什么?

时间:2015-11-16 18:42:28

标签: php laravel eloquent

如果我有数据库表suggestions_votes,那么Laravel(5.1)类(SuggestionsVoteSuggestionVote)的正确名称是什么?

表是通过迁移创建的,使用

Schema::create('suggestions_votes', ...

2 个答案:

答案 0 :(得分:2)

Laravel推荐某些约定,但它们也为您提供了覆盖它们的选项。

如果您的模型是" SuggestionVote",那么与该模型相关联的表将是该类的蛇案例复数名称。换句话说,它会寻找表" suggestion_votes"。如果要覆盖关联的表名,可以将此属性添加到模型中:

protected $table = 'suggestions_votes';

如果您实际上正在为模型创建一个数据透视表"建议"和"投票",然后Laravel将按照惯例按字母顺序加入两个相关的模型名称。换句话说,它将寻找数据透视表" suggestion_vote"。您可以在定义关系时覆盖它。例如:

return $this->belongsToMany('App\Suggestion', 'suggestions_votes');

在哪里' App \ Suggestion'将是您的Suggestion类的完全命名空间路径。

答案 1 :(得分:0)

这取决于。你可以让任何名字都有效。

如果您无法控制数据库,则模型“应该”为SuggestionsVote

如果您确实可以控制数据库,我会将表重命名为suggestion_votes,型号名称为SuggestionVote