我在PHP 5.3中使用CI2.0
我刚开始使用"Datamapper ORM",它非常棒!! 然而,关于班级名称,这是一个很大的问题
我有一个名为"users"的数据库表,所以我的dm模型是"用户",而且我有一个名为"user"的控制器?
所以在"用户"控制器中使用"用户"模型是不可能的!
解决这个问题的最佳方法是什么?
非常感谢
最好的祝福
php database codeigniter codeigniter-2 codeigniter-datamapper
我在我的控制器目录中设置了一个管理文件夹,在其下面我有3个单独的子文件夹,里面有控制器.
-- Controllers
---- Admin
------ Dashboard
-------- dashboard.php
-------- file.php
------ Members
-------- members.php
-------- file.php
------ Settings
-------- settings.php
-------- file.php
Run Code Online (Sandbox Code Playgroud)
我尝试在routes.php文件中路由它,就像这样
$route['admin/(:any)/(:any)'] = 'admin/$1/$2';
$route['admin/(:any)'] = 'admin/$1/$1';
$route['admin'] = 'admin/index';
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题?
我有一个codeigniter应用程序在WAMP本地工作正常.但是,我无法让它在IIS服务器上工作.请注意,我不想启用查询字符串.
这是我目前在web.config文件中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Clean URL" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这会导致主页面正确加载:www.website.com/policies
但是,当我点击某个项目时,请访问:www.website.com/policies/policy/view/31
不显示正确的页面.主页面继续显示.
控制器是Policy,函数是view().Codeigniter文件位于服务器上的策略/文件夹中.
我认为问题可能出在我的web.config文件中.Config文件的$ config ['base_url']是动态计算的,是正确的.Config文件的$ config ['index_page']为空白.您认为导致此问题的是什么?
感谢大家的帮助.
所以框架是CodeIgniter 2.0.2.我有一个表单,其中包含与数据库中的行对应的字段组.字段的名称采用以下格式:
opt[0][foo]
opt[0][bar]
opt[1][foo]
opt[1][bar]
etc...
Run Code Online (Sandbox Code Playgroud)
索引(1,2等等)与数据库中的行ID不对应,它只是一种分割字段组的方法.由于用户可以添加和删除任意数量的字段组,因此索引中可能存在间隙.所有组都是相同的,也就是说,它们包含具有相同二级名称的完全相同的字段集.
我希望能够使用CodeIgniter的验证库来验证表单,并(p)根据需要重新填充.我已经在预先填充上找到了很多帖子(除了优秀的CI用户指南之外),我知道如何使用一般的重新填充.但是,这是我第一次使用上面索引的字段名称来尝试它.我已经尝试过以下内容但它不起作用:
array(
'field' => 'opt[][foo]',
'label' => 'Foo',
'rules' => 'required'
)
Run Code Online (Sandbox Code Playgroud)
我猜我只是希望得太多而且CodeIgniter不支持我需要做的事情.扩展现有的表单验证库是一种选择,因此如果任何人处于相同的情况并且可以提供一些非常受欢迎的提示.
更新:
只是一些额外的信息,我也尝试验证一个特定的索引字段(见下文),这也没有用......据我所知,多维验证应该在特定的情况下工作:
array(
'field' => 'opt[0][foo]',
'label' => 'Foo',
'rules' => 'required'
)
Run Code Online (Sandbox Code Playgroud) 有谁知道如何访问已被另一个函数更新的公共控制器变量的值?代码示例Controller
class MyController extends CI_Controller {
public $variable = array();
function __construct() {
parent::__construct();
}
function index(){
$this->variable['name'] = "Sam";
$this->variable['age'] = 19;
}
function another_function(){
print_r($this->variable);
}
Run Code Online (Sandbox Code Playgroud)
}
当我调用another_function()时,我得到一个空数组..可能是什么问题?任何帮助将是apreciated ..
我是codeigniter的新手.我使用登录表单作为管理员登录.当管理员使用正确的用户名和密码登录时,他/她被引导到带有会话变量的主页.然后,如果他点击退出按钮,会话应该被销毁并将用户重定向到登录页面即登录表单页面.
第一个控制器是管理员:
<?php
class Admin extends CI_Controller
{
function index()
{
$data['main_content'] = 'admin/log_in';
$this -> load -> view('includes/admin/admin_template', $data);
}
function log_in()
{
$this->load->model('admin_model');
$query = $this -> admin_model -> validate();
if ($query)// if the user's credentials validated...
{
$data = array('user_name' => $this -> input -> post('user_name'), 'is_logged_in' => true);
$this -> session -> set_userdata($data);
redirect('admin/home/admin_home');
} else// incorrect username or password
{
$this -> index();
}
}
function log_out()
{
$this->session->sess_destroy();
redirect('/admin/admin','refresh');
}
}
Run Code Online (Sandbox Code Playgroud)
第二个控制器是家庭控制器:
<?php
class …Run Code Online (Sandbox Code Playgroud) 我在客户端的浏览器上呈现了以下html代码:
<div id="Div">
<img src="myImage.jpg" id="myImage"/>
</div>
Run Code Online (Sandbox Code Playgroud)
该特定图像由用户上载,然后在此处显示.我需要允许我的用户从此图像中删除任何红眼.我想这样做没有任何回发(我在后面使用CodeIgniter).在JQuery(或普通的Javascript)中是否有可用的库?如果不是什么可能是一个好方法?
如何financial_year使用Codeigniter Dbforge迁移使该字段成为唯一字段?
function up() {
$this->dbforge->add_field(array(
'id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
'auto_increment' => TRUE
),
'financial_year' => array(
'type' => 'VARCHAR',
'constraint' => 20
),
'start_date' => array(
'type' => 'DATE'
),
'end_date' => array(
'type' => 'DATE'
),
'status' => array(
'type' => "ENUM",
'constraint' => "'Active','Inactive'",
'default' => "Active"
),
'created_on' => array(
'type' => 'TIMESTAMP'
)
));
$this->dbforge->add_key('id', TRUE); // add `id` as primary key
$this->dbforge->create_table('financial_year'); …Run Code Online (Sandbox Code Playgroud) 我一直想知道在模型中用OO风格编写代码的正确方法是什么.当然,您可以使用从DB检索数据然后映射到模型级变量的函数.但是,当您在模型中尝试从BD获取其他数据时,此方法会变得违反直觉.例如:
class User extends CI_Model {
$id, $name, $age .... ;
public function get_user_from_db_with_id($id) {
...
// get data and map to variable.
}
public function get_all_users() {
// return all users in db
}
}
Run Code Online (Sandbox Code Playgroud)
控制器中的某个地方:
$user = new User();
$ben = $user->get_user_from_db_with_id($id);
// this does not make sense!!
$all_user = $ben->get_all_users();
Run Code Online (Sandbox Code Playgroud)
有什么想法或评论吗?
提前致谢!
在我的codeigniter项目中,我试图Instagram API用于登录.
这 是我正在使用的库.
但是当进入登录页面时,它显示错误
{"code":403,"error_type":"OAuthForbiddenException","error_message":"您不是此客户端的沙箱用户"}
样本网址是
https://www.instagram.com/oauth/authorize/?client_id=[client ID]&redirect_uri=[your url]&response_type=code
Run Code Online (Sandbox Code Playgroud)
它为什么这样工作?任何帮助都可以得到赞赏
codeigniter-2 ×10
codeigniter ×7
php ×7
database ×1
dbforge ×1
iis ×1
image ×1
jquery ×1
login ×1
migration ×1
model ×1
oop ×1
routes ×1
web-config ×1