我是CodeIgniter的新手.我需要处理一个表格.我在视图中有一个form.html页面
<html>
<head>
<title>Search</title>
</head>
<body>
<form action="search">
<input type="text" name="search" value="" size="50" />
<div>
<input type="submit" value="Submit" />
</div>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并形成控制器
class Form extends Controller {
function Form() {
parent::Controller();
}
function index() {
$this->load->view('form');
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个视图文件search.php但是当它被处理它显示页面未找到...
我在标题中有一个问题 - 为什么codeigniter购物车类不允许名称中的任何特殊字符?当我添加一些普通名称仅包含标准字符的项目时,它就像魅力一样.但是,如果我添加诸如"单词/单词"之类的东西,或者类似的东西,它将不会向购物车添加任何东西.有人可以给我提供一些提示吗?
我正在使用CodeIgniter MVC框架在PHP中构建一个相对简单的Web应用程序.我以前开发过PHP应用程序,但从未以规范的方式开发.我已经习惯了MVC框架,但是有两个问题让我重新回到绘图板上,这会减慢开发速度.
是否有关于Web应用程序可以拥有多少个控制器的最佳实践?我有一个(相当大)的控制器用于我的应用程序,包括业务逻辑,表单提交逻辑等.虽然这有效,但我在争论是否有意义的是有单独的控制器,例如一个用于表单处理和提交,另一个用于用户管理(会话,登录,注册)等.然后,我再也不想过度工作了.我要挂起的部分是:控制器有一个"默认"索引函数,它在父URL上加载.所有业务逻辑都从这里开始(例如,表单提交,对数据执行某些操作等).我一直默认只是在开发过程中在同一控制器中创建新功能.它有效,但我的目标之一是学习最佳实践,有些东西告诉我,我可能会以错误的方式解决这个问题.
模型只应用于数据库读/写函数,还是可以在其中放置"辅助"函数,例如generate_random_number,validate_login_credentials,login_session,logout_session等.
是否有可能从Codeigniter中的助手获取database.php变量值?
我正在使用Codeigniter并按照这些说明强制ssl,但所有请求都被重定向到
http://staging.example.com/index.php/https:/staging.example.com
Run Code Online (Sandbox Code Playgroud)
我.htaccess是:
### Canonicalize codeigniter URLs
# Enforce SSL https://www.
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
###
# Removes access to the system folder by users.
# Additionally this will allow you to create a System.php controller,
# previously this would not have been possible.
# 'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
# Checks to see if the user is attempting to …Run Code Online (Sandbox Code Playgroud) 我有一个"事件"表.为简单起见,您可以想象它应该像分层类别.它使用嵌套集模型(感谢Mark Hillyer在http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/上的帖子)
我的代码:
$query =
"LOCK TABLE event WRITE;
SELECT @ParentRight := parent.rgt, @Level := parent.level FROM event AS parent WHERE parent.id = '{$data['parent_id']}';
UPDATE event SET rgt = rgt + 2 WHERE rgt > @ParentRight;
UPDATE event SET lft = lft + 2 WHERE lft > @ParentRight;
INSERT INTO event(lft, rgt, level) VALUES(@ParentRight, @ParentRight + 1, @Level);
UNLOCK TABLES;";
mysqli_multi_query($this->db->conn_id, $query);
$data['id'] = $this->db->insert_id();
return $this->db->update('event', $data);
Run Code Online (Sandbox Code Playgroud)
之后我将用更新最后插入的对象 $this->db->update('event', $data)
$data 是用户填充的数组.
问题1: …
我正在尝试在CodeIgniter框架上运行的网站上设置博客脚本.我希望这样做,而不对我现有网站的代码进行任何重大代码更改.我认为创建一个指向另一个Controller的子域将是最干净的方法.
我设置新Blog控制器的步骤包括:
routes.php文件添加新规则.这是我想出的:
switch ($_SERVER['HTTP_HOST']) {
case 'blog.notedu.mp':
$route['default_controller'] = "blog";
$route['latest'] = "blog/latest";
break;
default:
$route['default_controller'] = "main";
break;
}
Run Code Online (Sandbox Code Playgroud)
这应该指向blog.notedu.mp和blog.notedu.mp/latest我的blog控制器.
现在问题是......
访问blog.notedu.mp或blog.notedu.mp/index.php/blog/latest工作正常,但访问blog.notedu.mp/latest由于某种原因带我到404页面...
我的.htaccess文件看起来像这样(从url中删除index.php的默认值):
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
我的Blog控制器包含以下代码:
class Blog extends CI_Controller {
public function _remap($method){
echo "_remap function called.\n";
echo "The method called was: ".$method;
}
public function index()
{
$this->load->helper('url');
$this->load->helper('../../global/helpers/base'); …Run Code Online (Sandbox Code Playgroud) 我是在我的项目中使用代码点火器的新用户,我在上传多个文件时面临一个问题,但最后一个只插入到所有图像三个图像字段.
我的控制器是:
function products()
{
date_default_timezone_set("Asia/Kolkata");
$config['upload_path'] = './resources/images/products/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 1000;
$config['max_width'] = 1024;
$config['max_height'] = 768;
$this->load->library('upload', $config);
$this->upload->do_upload('userfile');
$data = array('prod_image' => $this->upload->data(),
'prod_image1' => $this->upload->data(),
'prod_image2' => $this->upload->data());
$product_image=$data['prod_image']['file_name'];
$product_image1=$data['prod_image1']['file_name'];
$product_image2=$data['prod_image2']['file_name'];
$data = array(
'name' => $this->input->post('pd_name'),
'prod_image' => $product_image,
'prod_image1' => $product_image1,
'prod_image2' => $product_image2,
'created_time' => date('Y-m-d H:i:s'));
// insert form data into database
$result_set= $this->tbl_products_model->insertUser($data);
}
Run Code Online (Sandbox Code Playgroud)
我的观点部分是:
<input class="form-control" name="pd_name"type="text"/>
<input type="file" class="file_upload2" name="userfile"/> //1
<input type="file" class="file_upload2" name="userfile"/> //2 …Run Code Online (Sandbox Code Playgroud) 我正在使用Codeigniter + MySQL + Active Record构建一个带有组织结构图的项目.
有部门列为组织树,员工信息的人员,员工角色和员工部门,我存储匹配: 部门 - 员工 - 角色
你可以看到下面的结构:
部门 (parent_id用于构建树)
员工 (原始员工信息)
员工角色 (权重最低,层次最高)
员工部门 (在哪个部门 - 谁 - 什么角色)
在稍后阶段,工作人员可能属于具有不同角色的2个或更多部门.这就是为什么我使用单独的表Staff_departments为多对多.在这种情况下,让我们保持简单,并假设1名员工属于1个部门.
我想做什么:
对于主管和员工来说,这个过程很简单,所以我觉得我很好.对于Managers来说,我可能需要做一些递归的事情,但每次我开始编写一些代码行时我都在苦苦挣扎.
我的想法是在我的控制器中有一个函数find_related_staff($ staff_id){},我将传递登录的Staff的ID,它将返回一个包含其相关Staff的ID的数组.我唯一得到的是登录的工作人员的身份证.
如果经理返回其部门相关的经理,主管和员工的ID,以及他所在部门的儿童部门的经理,主管和员工.
如果主管仅返回其部门相关的主管和员工的ID.
如果员工退回他的身份证
有关如何实现这一点的任何想法?
codeigniter ×10
php ×9
.htaccess ×2
mysql ×2
activerecord ×1
custom-url ×1
file-upload ×1
frameworks ×1
mod-rewrite ×1
multi-query ×1
mysqli ×1
recursion ×1
routing ×1