控制器
$data["controller"] = $table;
$data["rows"] = $this->base_model->get();//get table attributes and names
$write_add = $this->load->view("generate/add",$data,TRUE);//load file into var
$file_vadd = fopen($path["dirname"].'/generate/views/'.$data["controller"].'/add.php',"w+"); //write to file
生成/ add.php(模板)
<?php echo "<?php " ?>echo form_open('<?=$controller?>/add'); ?>
<fieldset>
<legend>New <?=$controller?></legend>
<?php foreach($fields as $field): ?>
<label for="<?php echo $field->name?>" ><?php echo $field->name?></label>
<?php if(!empty($rel)) : ?>
<?php if($rel["rel_type"]==1 && $field->name == $rel["rel_fk"] ):?>
<select name="<?php echo $field->name?>" id="<?php echo $field->name?>">
<?php echo "<?php " ?> foreach($<?=$rel["rel_table"]?>_option as $<?=$rel["rel_table"]?>): ?>
<option value="<?php echo "<?php " ?>echo $<?=$rel["rel_table"]?>-><?=$rel["rel_pk"]?>; ?>" ><?php echo "<?php " ?>echo $<?=$rel["rel_table"]?>-><?=$rel["rel_view"]?> ;?></option>
<?php echo "<?php " ?> endforeach; ?>
</select>
<?php else: ?>
<input type="text" name="<?php echo $field->name?>" id="<?php echo $field->name?>" />
<?php endif; ?>
<?php endif; ?>
<?php endforeach;?>
<input name="submit" type="submit" value="Add"/>
</fieldset>
</form>
我有一个控制器,它将调用此模板来创建视图,控制器和模型。我不知道更好的方法来做到这一点,我不喜欢把PHP标签放在一个PHP标签。建议?
这就像cakephp中的“烘焙”功能。但我正在创建一个codeigniter版本的烘焙。脚本正在运行。但我的代码很乱。寻找更好的方法来管理模板文件..
答案 0 :(得分:0)
执行此操作的一种简单方法是启用output buffering,包括php文件(允许它执行其操作),结束输出缓冲并将结果保存在文件中。
的内容ob_start();
include("foobar.php");
$temp .= ob_get_clean();
file_put_contents('foo.tpl', $temp);