我有一个子类,它包含getDbIDFieldName。函数的目的是返回当前模型主键的实际变量名。
public function getDbIdFieldName(){ return "permission_id"; }
在主类BaseModel
中,我有以下函数setId和getId。我目前正在尝试使用这些函数来设置/获取子类的主键。
示例:
public function setId($id)
{
$this->strVal($this->getDbIdFieldName()) = $id;
}
问题是这是无效的。我尝试了很多东西,但似乎都想不通。
如果我理解正确,你可以使用一个临时变量:
public function setId($id) {
$tmp = $this->getDbIdFieldName();
$this->{$tmp} = $id;
}
请参阅此处的示例。