我正在使用Codeignator。我的问题是,如何在控制器中添加文件?
让我们详细解释
我在控制器中有类似下面的代码。只需注意if-else条件是两次。
foreach($order_list as $order) {
if (is_array($order)) {
foreach($order as $r) {
if ($r - > status == -1) {
//button
} elseif($r - > status == 1) {
//button
} elseif($r - > status == 2) {
//button
} elseif($r - > status == 3) {
//button
} else {
//button
}
// It will increase more in future
}
} else {
// same if-else code
if ($r - > status == -1) {//button}
elseif($r - > status == 1) {//button}
elseif($r - > status == 2) {//button}
elseif($r - > status == 3) {//button }
else {//button}
// It will increase more in future
}
}
所以我想,我将创建一个新文件并添加类似这样的文件
foreach($order_list as $order) {
if (is_array($order)) {
foreach($order as $r) {
//externalfile.php
}
} else {
//externalfile.php
}
}
externalfile.php
if ($r - > status == -1) {
//button
} elseif($r - > status == 1) {
//button
} elseif($r - > status == 2) {
//button
} elseif($r - > status == 3) {
//button
} else {
//button
}
为什么要这样做是因为我不知道增加行数,并且我不想在未来两次更改任何条件或文本或任何HTML。
您会帮我解决任何其他想法吗?
实际代码。
foreach($order_list as $order) {
if(is_array($order)){
foreach($order as $r) {
$encryption_id=base64_encode($this->encryption->encrypt($r->cust_id));
$this->myCode($r);//added here
$data[] = array(
"Sr_No" => $n,
"cust_id" =>$encryption_id,//encrpt the id
"Name"=>$r->c_firstname."".$r->c_lastname
);
$n++;
}
} else{
$this->myCode($r);//added here
}
}
public function myCode($status) {
if ($status== -1) {
$order_status='<a href="#">Action name</a>';
} elseif($status == 0) {
$order_status='<a href="#">Action name</a>';
} elseif($status == 1) {
$order_status='<a href="#">Action name</a>';
} else {
$order_status='<a href="#">Action name</a>';
}
}
答案 0 :(得分:0)
我认为最好向控制器添加另一种方法
public function myCode($status) {
if ($status == -1) {//button}
elseif($status == 1) {//button}
elseif($status == 2) {//button}
elseif($status == 3) {//button }
else {//button}
}
您应该将其命名为:
$this->myCode($order_list);
例如:
foreach($order_list as $order) {
if (is_array($order)) {
foreach($order as $r) {
$this->myCode($r);
//some else
}
} else {
$this->myCode($order);
}
}