The*_*ude 24 php database naming-conventions laravel eloquent
我正在使用laravel eloquent数据对象来访问我的数据,命名我的表,列,外键/主键等的最佳方法是什么?
我发现,那里有很多命名约定.我只是想知道哪一个最适合laravel雄辩模型.
我正在考虑遵循命名约定:
所以有了这个,我可以在控制器中使用类似的语法.
$result = Post::where('postCategoryId', '4')->get();
Run Code Online (Sandbox Code Playgroud)
是否有任何推荐的Laravel指南?我可以继续这些命名约定吗?
如果有人有更好的建议,我会很高兴听到他们.谢谢你们!
use*_*288 33
Laravel有自己的命名惯例.例如,如果您的模型名称是User.phpLaravel,则期望"User"类位于该文件中.它还期望users表格为User模型.但是,您可以通过在模型上定义表属性来覆盖此约定,例如,
class User extends Eloquent implements UserInterface, RemindableInterface {
protected $table = 'user';
}
Run Code Online (Sandbox Code Playgroud)
来自Laravel官方文档:
请注意,我们没有告诉Eloquent哪个表用于我们的User模型.除非明确指定了其他名称,否则该类的小写复数名称将用作表名.因此,在这种情况下,Eloquent将假定User模型将记录存储在users表中.您可以通过
$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');
}
}
Run Code Online (Sandbox Code Playgroud)
对于表中的其他列,您可以根据需要为其命名.
我建议你先阅读一次文档.
我不同意你们在这里展示的这些例子.
如果您查看官方的Laravel文档,特别是在Eloquent的关系会话(http://laravel.com/docs/4.2/eloquent#relationships)中,它会很干净.
表名应为复数形式,即用户模型的"用户"表.
列名不需要在Camel Case中,而是Snake Case.看它已经回答:Laravel中的数据库/模型字段名称约定?
很常见,你可以看到它就像RedBeanORM:列的Snake Case,即使你尝试其他的.由于您可以从Model对象调用以访问其关系的方法,因此建议避免使用列1重复表名.