0

这是我的课程,我希望向该课程添加一个全新的表(来自 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 循环在更新函数中添加一些逻辑..?

任何帮助将不胜感激。

4

0 回答 0