0

つまり、サイトレイアウトを表示するコントローラーがあり、次に電子メールを管理する別のコントローラーがあります。私の質問は、それらを同じページ(同じビュー)にどのように組み合わせることができますか?電子メールコントローラーの機能をサイトコントローラーに追加するだけですか?そのサイトコントローラーにはsend()メソッドがあり、すべてを「ニュースレター」ビューから「ホーム」ビューに移動しますか?

サイトコントローラー

<?php

      class Site extends CI_Controller 
   {

    function index()
      {
        $this->load->model('site_model');
        $data['records']= $this->site_model->getAll();
        $this->load->view('home',$data);
      }

   }

 ?>

メールコントローラー

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());

             }

        }

    }


}
4

1 に答える 1

0

サイトコントローラーのメソッドからこのコードブロックを削除しましたか?
このコードは、ニュースレターのページに自動的に転送します。サイトコントローラーから削除する必要があります

if($this->form_validation->run()==FALSE){
  $this->load->view('newsletter');
}
于 2012-08-19T23:58:02.323 に答える