这是我的课程,我希望向该课程添加一个全新的表(来自 sql)。
我在编辑页面上更改了一个选择框,它现在引用了一个不同的表。
<tr><td>Trainer Group</td><td><?php sbox('name', sql::one_column_array("select substring(name, 1, 27) from et.do.trainer_group")); ?></td></tr>
引用了我的旧选择框et.AS.trainer
,因此现在保存逻辑已损坏。
我希望为新表中的所有字段添加一堆新的类变量,我知道我可以通过添加到下面的静态变量来完成。
class Trainer
{
public $id,
$first,
$last,
$trainer_address1,
$trainer_address2,
$CITY,
$STATE,
$trainer_zip,
$trainer_phone,
$trainer_fax,
$trainer_cell,
$website_trainer_id,
$trainer_email,
$trainer_group,
$lat,
$long,
$group_name,
$name,
$inactive,
$group_id;
public function __construct($array)
{
foreach ($array as $k => $v)
{
if (property_exists($this, $k))
$this->{$k} = strtoupper($v);
}
}
public static function db_trainer ($id)
{
$results = sql::clean_row('Select * from et.AS.trainer where id ='. $id);
return new \AS\Trainer($results);
}
public function save()
{
if(!$this->id)
$this->id = '';
sql::merge('et', 'AS', 'trainer', array('id'), get_object_vars($this));
}
public function update($array)
{
foreach ($array as $k=>$v)
{
if (property_exists($this, $k) && $v != $this->{$k})
{
$this->{$k} = strtoupper($v);
}
}
$this->save();
}
在我的课堂上,我无法保存新的选择框。在 db_trainer 函数中,我添加了一个 sql 左外连接来包含新表,现在我可以从该trainer_group
表中创建新的静态变量,如下所示:
Select * from et.AS.trainer a left outer join event.dbo.trainer_group b on a.group_id = b.id where a.id ='. $id
我的问题显然出save()
在update()
我如何使用我的保存逻辑,merge
所以当有人使用选择框时它开始粘住?
我在想象,因为这个问题在我的编辑页面上,我需要通过编辑 foreach 循环在更新函数中添加一些逻辑..?
任何帮助将不胜感激。