1

CI_Sessionクラスのこの拡張機能を使用しています。フラッシュデータを作成し、TWBootstrapを使用してスタイルを設定します。ただし、「成功」メッセージをビューに渡そうとすると、まったく読み込まれません。

私は幸運に恵まれましたが、喜びはありません。

私のコントローラーはこのように見えます。

// Set form Validation
    $this->form_validation->set_rules('title', 'Title', 'required|trim|is_unique[films.title]');

    if($this->form_validation->run() == FALSE)
    {
        $data['page_title'] = 'Add New DVD';

        $this->load->view('_partials/_header', $data);

        $this->load->view('_partials/_menu');

        $data['genres'] = $this->genre_model->get_genres();

        $data['classification'] = $this->classification_model->get_classifications();

        $this->load->view('create', $data);

        $this->load->view('_partials/_footer'); 
    }
    else
    {
        // Insert into DB
        $film_data = array
        (
            'title' => $this->input->post('title'),
            'genre_id' => $this->input->post('genre'),
            'classification_id' => $this->input->post('classification')
        );

        $this->film_model->create($film_data);

        $this->session->set_success_flashdata('feedback', 'Success message for client to see');

        redirect('dvd');

そして私の見解は...

<?php $this->session->flashdata('feedback'); ?>

したがって、新しいアイテムをDBに挿入すると、モデルが実行され、リダイレクトは実行されますが、「set_success_flashdata」は実行されません。

MY_sessionライブラリは、CIのデフォルト設定に従って自動的にロードされるように設定されています。

このいまいましいフラッシュメッセージを表示するにはどうすればよいですか::(?

4

2 に答える 2

12

set_success_flashdataただではありませんset_flashdata

コントローラーの変更:

$this->session->set_flashdata('feedback', 'Success message for client to see');

ビューはそのままです:

echo $this->session->flashdata('feedback');

これがお役に立てば幸いです。ありがとう!!

于 2012-07-19T05:07:46.890 に答える
1

この特定の拡張機能のポイントはわかりませんが、答えは簡単です。

セッションライブラリからのデータをエコーし​​ていません。

flashdataをエコーする正しい方法は次のようになります。

<?php echo $this->session->flashdata('feedback'); ?>
于 2012-07-18T21:48:51.683 に答える