Bel*_*sen 0 php models laravel eloquent laravel-4
是否可以在laravel模型中使用继承?我解释:
是否可以执行一个扩展雄辩类的模型?
class A extends Eloquent
{
}
class B extends A
{
}
Run Code Online (Sandbox Code Playgroud)
e B也是2个不同的表,B有A_id作为外键和其他字段.怎么可能是B级的构造函数?它是一种可行的解决方案还是更好地使用hasOne关系?
没有每个A对象也是B对象.ES.用户和老师
谢谢
我很难理解你的补充细节,但在回答实际问题时:是的,可以扩展Eloquent模型.
<?php
class User extends \Eloquent {
protected $table = 'users';
}
class Student extends User {
protected $table = 'students';
}
Run Code Online (Sandbox Code Playgroud)
但请注意,任何方法(例如关系,范围等)都将传播到扩展类.如果不想要的,然后创建一个基类,具有最小的你需要什么,并与您的特定类型则子分类,即Student,Administrator等等.
另一种方法是使用接口.所以,如果你知道模型需要相同的属性,但会说,有不同的关系; 然后你可以创建一个接口来添加这些约束:
<?php
interface UserInterface {
public function getName();
}
class User extends \Eloquent implements UserInterface {
protected $table = 'users';
public function getName()
{
return $this->name;
}
}
class Student extends \Eloquent implements UserInterface {
protected $table = 'students';
public function getName()
{
return $this->name;
}
public function courses()
{
return $this->belongsToMany('Course');
}
public function grades()
{
return $this->hasMany('Grade');
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4567 次 |
| 最近记录: |