php - 如何在codeigniter中调用自定义助手的自定义兄弟方法并使用数据库
问题描述
编辑
<?php defined('BASEPATH') OR exit('No direct script access allowed');
function getCrud($table_name, $subject)
{
$CI =& get_instance();
$CI->load->database();
$crud = new grocery_Crud();
$crud->set_table($table_name);
$crud->set_subject($subject);
$crud->unset_read();
$crud->unset_clone();
$crud->where(array($table_name.'.flag' => '1'));
$crud->callback_delete(function ($primary_key) use ($table_name) {
return $CI->db->update($table_name, array('flag'=>'0'), array('id'=>$primary_key));
});
return $crud;
}
function oneToMany($table_name, $subject, $rel_table,$field='name')
{
$crud = getGrocreyCrud($table_name, $subject);
$crud->set_relation($rel_table.'_id', $rel_table, 'name', array('flag' => '1'));
$output = $crud->render();
return $output;
}
我无法使用 ci get 实例调用上述函数 getCrud。还有其他方法吗??
return $CI->db->update($table_name, array('flag'=>'0'), array('id'=>$primary_key)); 在控制器中使用这些代码行时($CI 将是 $this 在控制器中) 我可以将标志设置为 0,但在助手中它没有发生
解决方案
可能以下应该工作
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
if(!function_exists('getCrud'))
{
function getCrud($table_name, $subject)
{
// some code
}
}
if(!function_exists('oneToMany'))
{
function oneToMany()
{
$CI =&get_instance();
$crud = getCrud($table_name, $subject);
return $crud ;
}
}
推荐阅读
- python - 尝试使用 axline 和/或求解 y=mx+b 的已知点绘制平行线失败
- cytoscape - 细胞景观 3.8.2;ClusterMaker2 中的传递性聚类不起作用
- javascript - cookie不是js创建的
- python - 在熊猫系列中选择第一个不同的值
- git - Sublime 在更改分支时不会自动重新加载树和文件 - 通过 WSL 工作
- javascript - 如何更改select2 jquery插件中下拉项的属性
- java - 为什么我在文件输入/输出的 java 程序中收到此错误?
- jquery - 在 jquery 数据表上使用引导样式时的悬停效果
- mongoose - 从另一个项目中查找 mongoose 文档
- android - Android Studio:无法解析配置“:classpath”的所有工件