Php 合并多个CodeIgniter';将控制器插入同一视图
所以我有一个显示站点布局的控制器,然后我有另一个管理电子邮件的控制器。我的问题是如何将它们组合到同一页面(同一视图)上?我是否只需将电子邮件控制器的功能添加到我的站点控制器?所以站点控制器有send()方法,然后将所有内容从我的“新闻稿”视图移动到我的“主页”视图 现场控制员Php 合并多个CodeIgniter';将控制器插入同一视图,php,codeigniter,Php,Codeigniter,所以我有一个显示站点布局的控制器,然后我有另一个管理电子邮件的控制器。我的问题是如何将它们组合到同一页面(同一视图)上?我是否只需将电子邮件控制器的功能添加到我的站点控制器?所以站点控制器有send()方法,然后将所有内容从我的“新闻稿”视图移动到我的“主页”视图 现场控制员 您是否从site controller中的方法中删除了此代码块?此代码会自动将您转发到新闻稿页面。您必须将其从站点控制器中删除 if($this->form_validation->run()==FALSE){
您是否从site controller中的方法中删除了此代码块?
此代码会自动将您转发到新闻稿页面。您必须将其从站点控制器中删除
if($this->form_validation->run()==FALSE){
$this->load->view('newsletter');
}
所以你想要一个控制器?或者你想分享这个观点?我不确定哪一个更好?不过我确实希望他们有相同的看法。你的方法很好。。如果要共享视图,请在站点控制器中添加新方法并加载相同的视图。如果您想共享功能,那么复制代码(但这是多余的)。你也可以重定向到另一个控制器。我想你会想了解更多关于这个控制器的信息。听起来您的电子邮件控制器应该是一个模型,并且应该加载到您的控制器中。然后您的控制器将进行电子邮件验证。表格将提交给您的管理员。如果你想解决这个问题,请与我聊天。或者你可能想使用模板进行研究。
class Email extends CI_Controller{
function index()
{
$this->load->view('newsletter');
}
function send()
{
$this->load->library('form_validation');
//field name, error message, validaion rules
$this->form_validation->set_rules('name', 'Name', 'trim|required');
$this->form_validation->set_rules('name', 'Email Address', 'required');
if($this->form_validation->run()==FALSE)
{
$this->load->view('newsletter');
}
else
{
$name = $this->input->post('name');
$email = $this->input->post('email');
$this->load->library('email');
$this->email->set_newline("\r\n");
$this->email->from('', '');
$this->email->to($email);
$this->email->subject('This is an email test');
$this->email->message('Sucess');
$path = $this->config->item('server_root');
$file = $path .'CodeTest/attachments/newsletter1.txt';
$this->email->attach($file);
if($this->email->send())
{
echo ' Your email has been sent.';
}
else {
show_error($this->email->print_debugger());
}
}
}
}
if($this->form_validation->run()==FALSE){
$this->load->view('newsletter');
}