有没有办法从控制器发送数据到视图.我正在做的是用户可以选择链接,根据链接用户点击,相应的数据传递给控制器,另一个视图从对应于该链接的控制器加载.但我不知道该怎么做.我在这里使用篝火是我的控制器代码: -
function my_tickets() {
$username = $this->auth->username();
$this->load->model('helpdesk_model');
$result_set = $this->helpdesk_model->my_tickets($username);
foreach($result_set->result() as $data ) {
$title[] = $data->title;
$category[]=$data->category;
$priority[]=$data->priority;
$date[]=$data->date;
$post_status[]=$data->post_status;
$userfile_path[] = $data->userfile_path;
}
$arraysize=count($title);
Template::set('arraysize',$arraysize);
Template::set('title',$title);
Template::set('category',$category);
Template::set('priority',$priority);
Template::set('date',$date);
Template::set('post_status',$post_status);
Template::set('username',$this->auth->username());
Template::set('userfile_path',$userfile_path);
Template::render();
}
function full_post(){
Template::render();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的模型部分: -
function my_tickets($username){
$this->db->select('title,userfile_path,category,priority,date,post_status');
$this->db->where('username',$username);
$result = $this->db->get('tbl_tickets');
return $result;
}
Run Code Online (Sandbox Code Playgroud)
我的意见是: -
<?php
$arraysize =Template::get('arraysize');
$title[] = Template::get('title');
$category[]=Template::set('category');
$priority[]=Template::set('priority');
$date[]=Template::set('date');
$post_status[]=Template::set('post_status');
$username = Template::set('username');
$userfile_path = Template::set('userfile_path');
?>
<h3>Total Number Of posts : …Run Code Online (Sandbox Code Playgroud) 我是CodeIgniter的新手.我正在使用Phil Sturgeon的RestServer和RestClient.我一直在尝试在我的CodeIgniter RestClient控制器中发出POST请求来更新我的CodeIgniter RestServer中的数据,但它永远不会更新我的数据库中的数据.我认为我的POST请求不对.
这是我在控制器中的RestClient POST请求:
$result = $this->rest->post('newscontroller/news/format/json',
array('news_id' => $news_id,
'news_title' => $news_title,
'news_category' => $news_category ),
'json');
if(isset($result->status) && $result->status == 'success')
{
$data['message'] ='News has been updated.';
$this->load->view('otherpageview',$data);
}
else
{
$data['message'] ='Something has gone wrong';
$this->load->view('otherpageview',$data);
}
Run Code Online (Sandbox Code Playgroud)
似乎$ result没有得到任何值,因为我确实回显$ result-> status并且它没有任何显示.而且我在这个控制器的构造函数中也有这个:
// Load the rest client spark
$this->load->spark('restclient/2.1.0');
// Load the library
$this->load->library('rest');
// Run some setup
$this->rest->initialize(array('server' => 'http://api.therestserver.com/index.php/'));
Run Code Online (Sandbox Code Playgroud)
而在RestServer的控制器(即newscontroller)中,有这样的方法:
function news_post()
{
$news=array(
'news_id' => $this->post('news_id'),
'news_title' …Run Code Online (Sandbox Code Playgroud) 在我的网站上,我有一个全局Javascript文件,其中包括jQuery和下拉菜单的代码等.许多页面还有针对次要页面特定交互,表格等的自定义Javascript.
我在每个视图上设置的当前header.php文件是一个文件,基本上涵盖了从doctype到内容的开始,特定页面的视图文件以及footer.php关闭页面的所有内容.
目前global.js是从中链接的<head>.为了性能,我们应该把JS放在页面的最底部,但我无法找到一个好方法来做到这一点.我可以global.js使用自定义脚本块添加完整的脚本行,但这意味着我必须在每个页面上添加它,即使没有其他Javascript.有没有更好的方法将JS移到底部?
我正在考虑效率,我不太确定这种或那种方式.
但我有一堆多列的行.我只需要来自所有行的名称字段,其中某个其他键是特定值.我可以像这样得到所有这些行:
$this->db->where('res_id', $res_id);
$q = $this->db->get('products');
return $q->result();
Run Code Online (Sandbox Code Playgroud)
然后我可以通过它返回的数组进行预测,并且只使用每个对象的名称方法:
foreach($returned_value as $fun):
echo $fun->name;
endforeach;
Run Code Online (Sandbox Code Playgroud)
但是我想知道,只从每一行中选择name属性会更有效率,我觉得愚蠢的问它因为我一直在使用活动记录,但我怎么会这样做.我意识到我可以使用该$this->db->query()函数将其写出来,但有没有办法使用主要的活动记录命令来指定它?谢谢.
所以目前我的代码使用标准sha1来散列数据库实现的密码.
什么是或者有更好的保密方式来存储密码? 也许是MD5(是的我在开玩笑)
例如,我使用Codeigniter作为我的框架,加密密码的最佳方法是什么?
在我的控制器中,我将此代码用于检查购物车是否为空:
if (!$this->cart->contents()){
$this->session->set_flashdata('message', 'Your cart is empty!');
}
$this->data['message'] = $this->session->flashdata('message');
$this->load->view('templates/header', $this->data);
$this->load->view('bookings', $this->data);
$this->load->view('templates/footer');
Run Code Online (Sandbox Code Playgroud)
在我的"预订"视图中,我设置此代码以显示消息:
<div id="infoMessage"><?php echo $message;?></div>
Run Code Online (Sandbox Code Playgroud)
但是在第一页上加载消息"你的购物车是空的!" 没有显示.但是,当我按F5键或刷新浏览器时,它将显示.
我已经从codeigniter阅读了"CodeIgniter支持"flashdata"的手册,或者只能用于下一个服务器请求的会话数据,然后自动清除."
但是,我不知道在哪里设置此消息,因此它将在"下一个服务器请求"上可用.
我正在一个网站上使用/存储数据库中的重音字符.我有页面模板设置,以便config.php charset变量匹配设置,例如:
<meta charset="<?php echo $this->config->item('charset');?>">
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当$config['charset']设置为UTF-8时,表单验证失败,如果包含重音字符,就好像没有提交任何字符.因此,例如,如果á包含在字符串中的任何位置,则必填字段将反弹.减去á的字符串工作正常.
我已经设法通过更改$config['charset']为ISO-8859-1并将文本转换为UTF-8,然后在插入/使用php utf8_encode()和数据库检索数据之后将其设置为utf8_decode().这是最好的方法还是我错过了为了获得带有重音字符的UTF-8所需要的东西,在CodeIgniter中工作?
任何建议表示赞赏
我的CI应用程序中有登录控制器:
function index()
{
if($this->session->userdata('logged_in')==TRUE)
redirect('/success');
$data['error']=$this->session->flashdata('errormessage');
$this->load->view('auth',$data);
}
function process_login()
{
$username=$this->input->post('username');
$password=$this->input->post('password');
if($password == "good_pwd")
{
$data=array('username'=>$username,'logged_in'=>TRUE);
$this->session->set_userdata($data);
redirect('/success');
}
else
{
$this->session->set_flashdata('errormessage','Login failed');
redirect('/failed');
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在主控制器中的安全构造函数:
function __construct()
{
parent::__construct();
if($this->session->userdata('logged_in')!=TRUE) redirect('/login');
}
Run Code Online (Sandbox Code Playgroud)
当我试图进入www.mysite.com/main/function1/并且我没有登录时,构造函数会将我重定向到登录页面 - 当我登录正确时,我被重定向到主页面而不是将我重定向到登录页面的页面(在此示例中为:www.mysite.com/main/function1/) - 如何操作?
好吧,我正在尝试记录用户登录历史记录,所以为此我需要跟踪用户的IP地址.我用了:
$this->input->ip_address();
Run Code Online (Sandbox Code Playgroud)
这将返回ip address的机器,如果用户有有效的IP,或者应该返回0.0.0.0如果用户没有一个有效的IP.但就我而言,它既没有返回.
它只返回一种不寻常的格式.
::1
Run Code Online (Sandbox Code Playgroud)
PS我正在我的本地电脑上查看它.
编辑:
感谢所有评论的人.但是这里仍有奇怪的事情发生.我有两个独立的应用程序在同一台机器上运行.这两个应用程序都是在Codeigniter 2中制作的.第一个是记录0.0.0.0,第二个是记录::1.两个应用程序是否应该返回相同的东西?
谢谢
所以我想加入3张桌子.
我正在构建一个app i Codeigniter,我有3个表
客户:
-id
-phone_number
-hospital_id
-smc_status
-testing_center_id
医院
-id
-name
Testing_center
-id
-name
在模型中,我有这个:
public function get_clients()
{
if($slug === FALSE)
{
$this->db->select('clients.*');
$this->db->from('clients');
$this->db->join('hospital', 'clients.id = hospital.id');
$this->db->join('testing_center', 'clients.id = testing_center.id');
$query = $this->db->get();
return $query->result_array();
}
$query = $this->db->get_where('clients');
return $query->row_array();
}
Run Code Online (Sandbox Code Playgroud)
在视图中我有:
<tbody>
<?php foreach ($clients as $client_item): ?>
<tr>
<td><?php echo $client_item['phone_number'] ?></td>
<td><?php echo $client_item['smc_status'] ?></td>
<td><?php echo $client_item['hospital_id'] ?></td> //i wish to have the hospital name here
<td><?php echo $client_item['testing_center_id'] ?></td> …Run Code Online (Sandbox Code Playgroud) codeigniter ×10
php ×6
mysql ×2
activerecord ×1
html ×1
http-post ×1
hyperlink ×1
javascript ×1
parameters ×1
passwords ×1
performance ×1
rest ×1
rest-client ×1