数据库,表和列命名约定?
我使用laravel雄辩的数据对象来访问我的数据,命名我的表,列,外键/主键等的最佳方式是什么?
我发现,这里有很多命名约定。 我只是想知道哪一个最适合laravel雄辩的模型。
我正在考虑遵循命名约定:
因此,我可以在控制器中使用类似的语法。
$result = Post::where('postCategoryId', '4')->get();
有没有推荐的Laravel指导方针? 我可以继续使用这些命名约定吗?
如果有人有更好的建议,我会很高兴听到他们。感谢很多!
Laravel拥有自己的命名约定。 例如,如果您的模型名称是User.php
则Laravel期望类“User”位于该文件中。 该公司还预计users
表User
模型。 但是,您可以通过在模型上定义表属性来重写此约定,
class User extends Eloquent implements UserInterface, RemindableInterface {
protected $table = 'user';
}
来自Laravel官方文档:
请注意,我们没有告诉Eloquent哪个表用于我们的用户模型。 除非明确指定了其他名称,否则该类的小写复数名称将用作表名称。 因此,在这种情况下,Eloquent将假定用户模型将记录存储在用户表中。 您可以通过在模型上定义$table
属性来指定自定义表
如果您将另一个表中的用户表ID用作外键,那么它应该是像user_id
这样的蛇状情况,以便在关系情况下可以自动使用它。 同样,您可以通过在关系函数中指定其他参数来覆盖此约定。 例如,
class User extends Eloquent implements UserInterface, RemindableInterface {
public function post(){
return $this->hasMany('Post', 'userId', 'id');
}
}
class Post extends Eloquent{
public function user(){
return $this->belongsTo('User', 'userId', 'id');
}
}
Laravel雄辩的关系文件
对于表格中的其他列,您可以随意命名。
我建议你一次通过文档。
我一般不同意你们在这里已经证明的这些例子。
如果你看一下官方的Laravel文档,特别是在Eloquent的关系会议(http://laravel.com/docs/4.2/eloquent#relationships)中,这很干净。
表名称应为复数形式,即用户模型的'用户'表。
列名不需要在骆驼案例中,而是在Snake Case中。 看到它已经回答了:Laravel中的数据库/模型字段名称约定?
通常情况下,您可以看到它就像RedBeanORM:即使您尝试使用其他列的Snake案例。 由于可以从Model对象调用以访问它们的关系的方法,因此建议避免重复使用列名称。
默认的表名命名约定很容易与安装可能偶尔具有相同类名的多个包相冲突。 解决办法是将表格命名为:[vendor]。[package]。[class],这与Laravel中的命名空间应用方式一致。
编辑 :虽然不建议在表名中使用点。 是否会有一个替代约定用于确保模块化构建应用程序的开发人员不需要担心现有的表名称。
链接地址: http://www.djcxy.com/p/41313.html