我正在使用CI,我有一个UserModel,它根据登录信息选择用户并设置userVO并在这样的会话中添加此userVO:
$this->session->set_userdata('user', $userVO);
Run Code Online (Sandbox Code Playgroud)
当我尝试访问此会话时,它返回此错误:
Message: main() [function.main]: The script tried to execute a method
or access a property of an incomplete object. Please ensure that the
class definition "UserVO" of the object you are trying to operate on
was loaded _before_ unserialize() gets called or provide a __autoload()
function to load the class definition.
Run Code Online (Sandbox Code Playgroud)
我找到了一个"解决方案",我需要CI在会话类之前加载UserVO类并且它可以工作.
问题是我有很多os VO类,我会在会话中需要它们,并且自动加载它们是一件坏事,因为我不会同时需要它们.
有没有解决方法?
在此先感谢您的帮助.
查看看起来像这样
<?=form_open_multipart('upload/process');?>
<input type="file" multiple="multiple" name="userfile[]" id="userfile" />
<?=form_submit('upload', 'Upload');?>
<?=form_close();?>
Run Code Online (Sandbox Code Playgroud)
我希望用户能够一次上传多个图像.一旦上传,我想在数据库中输入图像细节,最后将图像移动到uploads文件夹.
我有codeigniter的基本知识
ps:我不想使用uploadify或类似的图片上传插件.试图保持尽可能轻的重量
更新 这是我尝试var_dump($ _ FILES ['userfile'])时得到的那种数组.我应该使用什么样的循环来分离各个图像的数据.
array
'name' =>
array
0 => string '01.jpg' (length=6)
1 => string '1 (26).jpg' (length=10)
'type' =>
array
0 => string 'image/jpeg' (length=10)
1 => string 'image/jpeg' (length=10)
'tmp_name' =>
array
0 => string 'C:\wamp\tmp\php2AC2.tmp' (length=23)
1 => string 'C:\wamp\tmp\php2AD3.tmp' (length=23)
'error' =>
array
0 => int 0
1 => int 0
'size' =>
array
0 => int 409424
1 => …Run Code Online (Sandbox Code Playgroud) 我想找到验证失败的所有字段名称.
我想在验证失败字段上应用错误类.我知道如何显示与该字段相关的错误消息.
但有些我想知道字段名称,以便我可以检查列表中的天气字段并向该字段添加错误类.
我有一个需要本地化的 javascript 代码,即。
function js_proc() {
var some_data = 'this text needs to be translated dynamically at runtime';
}
Run Code Online (Sandbox Code Playgroud)
所以我重新写了这样:
function js_proc() {
var some_data = <?php echo $this->lang->line('some_data_id'); ?>;
}
Run Code Online (Sandbox Code Playgroud)
在view中,我写了这样的js链接:
<script type="text/javascript" src="www.domain.com/codeigniter/get_js/file-1/"></script>
Run Code Online (Sandbox Code Playgroud)
它调用控制器中的函数 get_js()。这个想法是让 get_js() 函数读取 js 文件并翻译语言字符串......
要翻译的js字符串太多了,所以我不能every string作为变量传递。理想情况下,我想通过 codeigniter 语言文件来完成这项工作。
我的问题是:有没有办法解析 js 文件中的 php 部分并执行(=翻译)它们?IE。
class App extends CI_Controller
{
function get_js {
$content = file_get_contents($js_file);
echo parse_php($content);
}
...
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我在db中的给定字段上尝试增加1时出现问题.我尝试了有无活动记录.
我的函数看起来像这样(在我的模型中)
function _set_reads($id){
$this->db->set('reads', 'reads+1', FALSE)
$this->db->where('id', $id);
$this->db->update('article');
}
Run Code Online (Sandbox Code Playgroud)
和
function _set_reads($id){
$sql = 'update article set reads=reads+1 where id=?';
$this->db->query($sql, array($id));
}
Run Code Online (Sandbox Code Playgroud)
我在两种情况下都得到相同的错误,它是以下错误消息:
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'reads+1 WHERE `id` = '15'' at line 1
UPDATE `article` SET `reads` = reads+1 WHERE `id` = '15'
Run Code Online (Sandbox Code Playgroud)
我使用的是最新版本的MAMP
我可以针对以下问题提出设计建议:
我正在使用Codeigniter/Grocery_CRUD.
我的系统是多租户 - 不同的自治站点 - 在同一个客户端内.我有很多具有唯一逻辑键的表实例.一个这样的表结构是:
equip_items
id(pk)
equip_type_id(fk to equip_types)
site_id(fk to sites)
名称
其中(equip_type_id,site_id,name)一起是我的数据库中的唯一键.
问题是当使用grocery_CRUD表单添加或编辑打破此数据库规则的记录时 - 添加或编辑失败(由于数据库中的约束)但我得不到任何反馈.
我需要对is_unique form_validation规则进行修改,通过该规则我可以指定必须唯一的字段*s*.
问题:
如何指定规则?set_rules()用于给定字段,我有多个规则将应用于的字段.这是否意味着我应该放弃Form_validation模式?或者我是否遵循"匹配"规则模式并以某种方式指向其他字段?
也许一个回调函数会更好,但这意味着在每个模型中编写一个自定义函数,我在这里有这个问题,这是9个表.在一个地方(扩展form_validation)似乎要好得多.
我错过了已经解决了这个问题的codeigniter或grocery_CRUD中的东西吗?
任何您可能有的建议/意见将不胜感激.
编辑: 实际上似乎Johnny提供的解决方案并没有达到标记 - 它强制unique_fields()中的每个字段独立地唯一 - 与在每个字段上设置is_unique()相同.我的问题是,在我的场景中,这些字段是复合唯一键(但不是主键).我不知道它是否重要但是对原始问题陈述更进一步:1)site_id是一个'隐藏'field_type - 我不希望我的用户担心他们在不同的网站上所以我正在处理后面的site_id场景.2)处理equip_status_id属性(不是唯一键的一部分).3)我对所有这些外键属性都有set_relations(),而grocery_CRUD对我有好处.
编辑2 我用回调解决了这个问题.
我像这样设置默认控制器
$route['default_controller'] = "InterviewController";
Run Code Online (Sandbox Code Playgroud)
这是InterviewController的代码
class InterviewController extends CI_Controller{
private $em;
function __construct() {
parent::__construct();
}
public function index() {
$commentsList = array();
$commentsList['comments'] = $this->em->getRepository('Entities\Comment')->findPage(1, 10, 'DESC', $this->em->getRepository('Entities\Interview')->getLast()[0]->getId());
$lastInterviewsAnons = array();
$lastInterviewsAnons['lastInterviewsAnons'] = $this->em->getRepository('Entities\Interview')->getLast();
$this->load->view('header');
$this->load->view('navbar');
$this->load->view('content', $lastInterviewsAnons);
$this->load->view('addCommentPanel');
$this->load->view('commentsList', $commentsList);
$this->load->view('footer');
}
}
Run Code Online (Sandbox Code Playgroud)
一切都在我的本地机器上完美,但在服务器上我得到404错误.我只能通过键入http://mydomain.com/index.php/InterviewController等完整网址来访问此控制器.好像路线文件中的指令不起作用.你有什么建议吗?
我是 codeigniter 的新手。但现在我正在使用 codeigniter 开发一个项目。我的 HTML 代码是这样的:
<input type="text" class="get_started_frm_reg" name="first_name" required />
Run Code Online (Sandbox Code Playgroud)
现在我想通过函数 form_input() 函数来转换它。我写了这样的代码
$first_name=array(
"name"=>"first_name",
"class"=>"get_started_frm_reg",
"type"=>"text"
);
Run Code Online (Sandbox Code Playgroud)
但我不明白如何输入必填字段。请帮助我。
更清楚的是,默认语言中的这些行都general_lang.php不起作用:
$lang['general_welcome_message'] = 'Welcome, %s ( %s )';
Run Code Online (Sandbox Code Playgroud)
要么
$lang['general_welcome_message'] = 'Welcome, %1 ( %2 )';
Run Code Online (Sandbox Code Playgroud)
我希望输出像Welcome, FirstName ( user_name ).
我在/sf/answers/768156791/上跟踪了第二个(未接受的)答案.
我在视图中编写的代码是:
<div id="welcome-box">
<?php echo lang('general_welcome_message',
$this->session->userdata('user_firstname'),
$this->session->userdata('username')
);
?>
</div>
Run Code Online (Sandbox Code Playgroud)
我使用codeigniter 2.
执行以下查询后,codeigniter显示一个空白页面,我认为插入查询中存在语法错误,也无法打印查询.请帮忙
我的模型代码如下:
function add_new_user($email,$password,$username)
{
$sqls="INSERT INTO pr_users (username,userpass,email,departmentid,userroleid,managerid,userlevel,branchid,is_global,registrationtime,timemodified,modifierid,status,deleted,temppass,temppassvalidtill,lastlogin,lastrefresh,lastloginip,if_online,pfield) values ('".$email."','".65e1b655a6d6f4cbed20554d3b52521a743afdc0."','".$email."','".1."','".4."','".10."','".4."','".2."','".0."','".0."','".1491557947."','".1."','".1."','".0."','".."','".0."','".1492084067."','".1492084083."','".::1."','".0."','".unfold983$."')";
$query=$this->db->query($sqls);
$result = $this->db->last_query();
return $result;
}
Run Code Online (Sandbox Code Playgroud) codeigniter-2 ×10
php ×7
codeigniter ×5
controller ×1
file-upload ×1
grocery-crud ×1
multilingual ×1
mysql ×1
object ×1
routing ×1
session ×1
translation ×1
validation ×1