[英]Codeigniter MVC - Loading views without losing controller data and form validation
關於MVC在codeigniter中的工作原理,這對我來說沒有意義。 我使用example.com/company/加載'controller / 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);
}
這會加載'views / company.php'並顯示表單:
<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
然后我在公司控制器內部有一個更新功能:
function update() {
$this->form_validation->set_rules('company_name', 'Company Name', 'trim|required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('company');
} else {
//update db, load model, post data, success, etc
}
}
我的問題是:
我希望我錯過了一些重要的東西,因為我一整天都在盯着這個並尋找答案,但找不到一個關於如何在“現實世界”中工作的教程謝謝
當然是。 控制器方法在項目中充當單個函數。
如果我解釋得更多
<?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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.