Codeigniter 3文章图片更新功能失效问题求助
嘿,我来帮你把这段Codeigniter 3.1.8的博客创建视图代码整理得更规整,顺便给你一些优化代码复用的实用建议——毕竟重复代码维护起来太头疼啦!
格式化后的Create.php视图代码
<?php echo form_open_multipart("posts/create"); ?> <div class="form-group <?php if(form_error('title')) echo 'has-error';?>"> <input type="text" name="title" id="title" class="form-control" placeholder="Title"> <?php echo form_error('title', '<span class="help-block">', '</span>'); ?> </div> <!-- 这里可以补充你代码中省略的其他表单字段,比如文章内容、封面上传等 --> <button type="submit" class="btn btn-primary">发布文章</button> <?php echo form_close(); ?>
优化更新功能代码复用的小技巧
既然你提到更新功能大量复用创建功能的代码,最省心的方式是把表单核心逻辑抽成局部视图(Partial View),让创建和更新页面共用这部分代码:
- 先创建一个共用的表单局部视图
application/views/posts/_form_fields.php:
<div class="form-group <?php if(form_error('title')) echo 'has-error';?>"> <!-- 用set_value兼顾表单验证回显和更新时的默认值 --> <input type="text" name="title" id="title" class="form-control" placeholder="Title" value="<?php echo set_value('title', isset($post) ? $post['title'] : ''); ?>"> <?php echo form_error('title', '<span class="help-block">', '</span>'); ?> </div> <!-- 其他字段(内容、封面图等)都按这个格式处理,统一维护验证和显示逻辑 -->
- 在
create.php中调用这个局部视图:
<?php echo form_open_multipart("posts/create"); ?> <?php $this->load->view('posts/_form_fields'); ?> <button type="submit" class="btn btn-primary">发布文章</button> <?php echo form_close(); ?>
- 在
update.php中调用局部视图(传递现有文章数据):
<?php echo form_open_multipart("posts/update/{$post['id']}"); ?> <?php $this->load->view('posts/_form_fields', ['post' => $post]); ?> <button type="submit" class="btn btn-primary">更新文章</button> <?php echo form_close(); ?>
这样做的好处很明显:
- 不用重复编写相同的表单字段代码,减少冗余
- 表单验证的错误提示、回显逻辑只需要维护一处
- 更新页面能自动填充现有文章数据,同时保留表单验证失败时的回显功能
内容的提问来源于stack exchange,提问作者Razvan Zamfir
相关产品推荐
相关产品推荐

