我正在Codeigniter中创建一个投资组合页面,我也在为该网站配备一个简单的CMS。
我有一个控制器,可以按如下方式创建投资组合项目:
public function create_portfolio()
{
$this->load->model('portfolio_model');
$this->portfolio_model->insert(
$this->input->post('title'),
$this->input->post('short_description'),
$this->input->post('complete_description'),
$this->input->post('github'),
$this->input->post('url')
);
}
面向对象的方法是这样的:
public function create_portfolio()
{
$this->confirm_login();
$this->load->model('portfolio_model');
$portfolio = new Portfolio(
$this->input->post('title'),
$this->input->post('short_description'),
$this->input->post('complete_description'),
$this->input->post('github'),
$this->input->post('url')
);
$this->portfolio_model->insert($portfolio);
}
随着雇主越来越多地寻求具有OOP技能的人,我正试图评估后一种方法是否有效。最后,我所拥有的模型最终将从Portfolio对象访问所有实例变量,以便插入数据库(我没有使用ORM)。
在将所有输入字段传递给对象之前,是否有任何意义将其传递给模型?我可能用错误的方式来表达这个问题,但我很乐意接受你的意见。
答案 0 :(得分:0)
由于您将值传递给构造函数,构造函数可能会对输入进行验证以确保其有效或执行某种其他处理
$portfolio->title
可能不等于$this->input->post('title');
所以选项2会更好。