我是一名Symfony 2开发者,他在Laravel开始。我对Laravel的ORM有点失落,似乎我们必须直接处理数据库以手动创建表...在Symfony上,这是由Doctrine根据映射类(和@ORM注释)自动生成的。
这个概念在Laravel上是完全不同的,还是我没有找到像在Symfony上那样做的方法?
答案 0 :(得分:2)
你的问题不够明确,但我想你想知道Eloquent
如何建模地图表,在这种情况下你必须使用你的表名(在数据库中)这个单词的复数形式(但不是强制性的) ),例如,用于包含用户数据的表应该是users
,或者对于发布数据,表应该是posts
,但您可以使用任何您想要的内容。
使用Eloquent
模型映射users表;所有你需要做的事情;创建一个这样的模型:
Post extends Eloquent {
//...
}
现在你可以使用这样的东西:
$posts = Post::all();
$post = Post::find(1);
Laravel
将从posts
表进行查询,但如果您的表名不同于Laravel
想要的标准方式,那么您必须告诉Laravel
表名是什么通过在模型中添加属性,例如:
Post extends Eloquent {
protected $table = 'article'; // Laravel will query from article table
//...
}
您可以使用Post
型号作为;
// Laravel will query from article table in the database
// because you gave the $table property with the table name
$posts = Post::all();
$post = Post::find(1);
详细了解the manual。
答案 1 :(得分:1)
Laravel有像DoctrineMigrationsBundle这样的迁移,所以在你的模型(权利)中你只需写(例如):
class YourClass extends Eloquent {
}
因此无需使用属性对模型进行过度充电,laravel会自动执行此操作
http://laravel.com/docs/migrations了解有关移民的更多信息