【发布时间】:2014-10-15 11:50:30
【问题描述】:
我有 2 个模型:个人资料和学生。配置文件包含一个主键 id。学生模型没有任何主键,只有一个外键 profile_id,它链接到 profile.id。我的学生控制器中有一个函数可以激活学生,在调用时将状态设置为 0 到 1。我正在尝试使用 save() 来更新值,但无法做到这一点,提示我这样的消息:
Column not found: 1054 Unknown column 'id' in 'where clause'
可以请教吗?非常感谢。
学生模型:
class Student extends Eloquent {
protected $primary_key = null;
public $incrementing = false;
protected $fillable = array('username', 'password', 'status', 'profile_id');
public function profile() {
return $this->belongsTo('Profile');
}
}
个人资料模型:
class Profile extends Eloquent {
protected $fillable = array('firstname', 'lastname', 'email', 'phone');
public function student()
{
return $this->hasOne('Student', 'profile_id', 'id');
}
}
StudentController:
public function activate($id) {
$student = Student::where('profile_id', '=', $id)->first();
$student->status = 1;
$student->save();
return Redirect::to('students');
}
【问题讨论】:
-
你为什么要使用这个? Eloquent 无论如何都不会,因为它依赖于主键(就像任何 ORM 一样)。