簡體   English   中英

Codeigniter和Datamapper:表單保存的行為很奇怪

[英]Codeigniter & Datamapper: Form Saving is behaving strange

我對Codeigniter和Datamapper有一個奇怪的問題,

我正在制作CMS系統,並且嘗試使用Datamapper從數據庫中編輯文章。 當我單擊以編輯文章時,出現消息“您已成功保存了文章”,而沒有單擊“保存”按鈕,所有數據也都為空並保留0。當我輸入數據並單擊“保存”時,它將保存但再次當我再次嘗試對其進行編輯時,它返回到0 ...有人可以幫忙嗎

這是我在控制器中的編輯功能

public function edit($id = NULL)
{
   // Get articles by ID
    $articles = new Article_model();
    $article = $articles->where('id', $id)->get();

    if ($id)
    {
        $id == NULL || $article;
        count($article) || $error = 'Page not found ';
    }
    else
    {
        $article = $this->article_model->get_new();
    }

    $article->title = $this->input->post('title');
    $article->text = $this->input->post('text');

    if ($article->save())
    {
        echo 'You have succesfully saved the article';
    }
    else
    {
        echo 'Sorry something went terribly worng';
    }


    $data = array(
        'admin_content' => 'admin/article/edit',
        'article' => $article,
        );

    $this->parser->parse('admin/template_admin', $data);
}

這是我的看法

<?php if ($this->tank_auth->is_logged_in()): ?>
<div class="container">
<div class="row">
    <div class="col-md-9">
      <h3><?php echo empty($article->id) ? 'Add an article' : 'Edit a Page ' . $article->title ;?></h3>

 <?php echo form_open(); ?>
<table class="table">
    <tr>
        <td>Publication Date</td>
        <td><?php echo form_input('pubdate', set_value('pubdate', $article->pubdate), 'class="datepicker"'); ?></td>
    </tr>
    <tr>
        <td>Title</td>
        <td><?php echo form_input('title', set_value('title', $article->title)); ?></td>
    </tr>
    <tr>
        <td>Body</td>
        <td><?php echo form_textarea('text', set_value('text' , $article->text), 'class="tinymce"'); ?></td>
    </tr>
    <tr>
        <td></td>
        <td><?php echo form_submit('submit', 'Save', 'class="btn btn-primary"'); ?></td>
    </tr>       
</table>

<?php echo form_close(); ?>
    </div>
</div>
</div>
<?php else: redirect('/auth/login'); ?>
<?php endif; ?>

一點也不奇怪...每次加載控制器時,它都會執行article類的save()方法。

您可能應該包括一些表單驗證,並且僅在提交表單且驗證通過后才保存文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM