对于MVC在codeigniter中的工作原理,这对我没有意义。 我使用example.com/company /
加载'controller / Company.php'transparent
这会加载'views / company.php'并显示表单:
function index() {
$page = uri_string();
$data['title'] = ucfirst($page);
$this->load->view('templates/header', $data);
$this->load->view('templates/top_nav', $data);
$this->load->view($page, $data);
$this->load->view('templates/footer', $data);
}
然后我在公司控制器内部有一个更新功能:
<h1 class="page-title"><?php echo $title; ?></h1>
<?php echo form_open('company/update', 'class="form-horizontal" role="form"'); ?>
<input name="company_name" type="text">
<?php echo form_error('company_name'); ?> //if empty display error
//rest of form and submit button
我的问题是:
我希望我错过了一些重要的东西,因为我一整天都在盯着这个并寻找答案但却无法找到一个关于如何在“现实世界”中工作的教程谢谢
答案 0 :(得分:1)
当然可以。控制器方法在项目中充当单个函数。
如果我解释得更多
<?php
public function one()
{
echo '1';
}
public function two()
{
echo '2';
}
在这里,函数one
不知道什么是函数two
。所以这两个函数都是独立的。
根据你的问题
您在index()
$this->load->view('templates/header', $data);
$this->load->view('templates/top_nav', $data);
$this->load->view($page, $data);
$this->load->view('templates/footer', $data);
但在update()
只加载
$this->load->view('company');
所以在第二个函数中没有标题,导航和页脚。
您的问题的答案是
<?php
if ($this->form_validation->run() == FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('templates/top_nav', $data);
$this->load->view('company');
$this->load->view('templates/footer', $data);
} else
{
//update db, load model, post data, success, etc
}
问题二
你可以像这样使用
<?php
if ($this->form_validation->run() == FALSE)
{
$page = uri_string();
$data['title'] = ucfirst($page);
$this->load->view('templates/header', $data);
$this->load->view('templates/top_nav', $data);
$this->load->view('company');
$this->load->view('templates/footer', $data);
} else
{
//update db, load model, post data, success, etc
}