让我们参考Yelp上的" 排序依据 "部分:
我有3个anchor()函数生成3个链接.当选择"排序依据"选项之一时,我想删除超链接/锚点()并将其加粗以显示它被选中,就像在上面的页面上一样.
现在我正在考虑对$ arr执行uri_to_assoc(),因为所选的选项将在url中,如controller/function/sort_by/best_reviews/..,然后基于什么是键(best_reviews)或元素(sort_by) ,在视图中使用以下代码
<?php
$arr = uri_to_assoc(3);
if($arr['sort_by'] == 'best_reviews') {
echo "<strong>Best Reviews</strong>";
} else {
anchor('controller/function/sort_by/best_reviews', 'Best Reviews');
]
?>
Run Code Online (Sandbox Code Playgroud)
现在我相信MVC的想法是在视图中保留一些PHP代码(逻辑代码?).在这种情况下,您是将上面的代码放在视图中,还是在控制器/模型中使用该逻辑然后传递最终代码以在数组中显示(echo或anchor())并在视图中回显数组?.
.
迷你问题(PHP)
如果在url中不存在/ sort_by/variable的情况下未定义$ arr ['sort_by'],则语句if($ arr ['sort_by'] =='best_reviews')将给出错误.您是否将所有上述代码嵌套在if(isset($ arr ['sort_by'])){}中?
我正在使用CodeIgniter来编写一个网站...我理解现在使用$ _GET请求就像www.website.com/function/value ..并且在控制器中获取一个url段是这样写的:
$userId = $this->uri->segment(3, 0);
Run Code Online (Sandbox Code Playgroud)
我只是想知道,当控制器加载时,我想检查是否有任何uri段,如果有则推送到一个视图,否则如果没有uri段推送到另一个.
那可能吗?
干杯.
无法弄清楚这里有什么问题:
class Model_form extends CI_Model
{
function __construct()
{
// Call the Model constructor
parent::__construct();
}
function add_tree()
{
$v_treename = $this->input->post('f_treename');
$v_treedesc = $this->input->post('f_treedesc');
$v_treeid = $v_treename;
$this->db->query("INSERT INTO trees (index, tree_name, tree_desc, tree_id) VALUES (NULL, '$v_treename', '$v_treedesc', '$v_treeid') "); //PROBLEM OCCURS HERE
}
Run Code Online (Sandbox Code Playgroud)
得到此错误:
A Database Error Occurred 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 'index, tree_name, …
在Expression Engine中,{edit_date}标记不会像返回的那样返回UNIX时间戳{entry_date}.为了解决这个问题,我使用了以下方法.
有没有人知道如何使这更容易?
{exp:channel:entries channel="pieces" limit="1" track_views="three"}
<?php
$edit_date_string = {edit_date};
$edit_date = NULL;
if(!isset($edit_date_string)) {
$edit_date = {entry_date};
} else {
// Date format: 2011 05 25 00:53:44
// Raw: 20110525005344
$hour = substr($edit_date_string, -6, 2);
$minute = substr($edit_date_string, -4, 2);
$second = substr($edit_date_string, -2, 2);
$day = substr($edit_date_string, -8, 2);
$month = substr($edit_date_string, -10, 2);
$year = substr($edit_date_string, -12, 2);
$edit_date = mktime($hour, $minute, $second, $month, $day, $year);
}
echo $edit_date;
?>
{/exp:channel:entries}
Run Code Online (Sandbox Code Playgroud)
作为旁注,似乎这是一种不一致,这使得处理和比较日期变得更加困难.这可能是一个很好的理由.有人知道吗?谢谢
我花了大量时间浪费时间从头开始做所有事情,我刚开始看PHP框架.一位朋友推荐给我后,我想我会给Codeigniter一个.
我完成了第一个教程并且没有任何问题,但我遇到了第二个问题.
起初我的代码与教程相同:
<?php
class Blog extends CI_Controller{
function Blog()
{
parent::CI_Controller();
$this->load->scaffolding('entries');
}
public function index(){
$data['title'] = "My Blog Title";
$data['heading'] = "An intresting title";
$data['todo'] = array('create media player','design site','finish project');
$this->load->view('blog_view',$data);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
但是我收到了内部服务器错误.查看用户指南后,它显示了使用构造函数的不同方法.
我将代码更改为文档规范.
<?php
class Blog extends CI_Controller{
public function __construct() {
parent::__construct();
$this->load->scaffolding('entries');
}
public function index(){
$data['title'] = "My Blog Title";
$data['heading'] = "An intresting title";
$data['todo'] = array('create media player','design site','finish project');
$this->load->view('blog_view',$data);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
但我仍然得到一个内部错误.我不知道我的代码是错误还是我错误配置了其他内容.一些建议会很好,谢谢.
编辑:澄清 - 当我将构造函数添加到类时,我只收到内部错误.
为什么CodeIgniter的XSS过滤器只通过特定事物的正则表达式做出反应,而不是首先清理所有输入,无论内容是否被污染?另外,为什么在输入期间而不是在输出上完成(就像它应该是?)
我正在使用CI.我想在子域上共享会话而我正在使用数据库来存储会话
我试过这个
ini_set('session.cookie_domain', substr($_SERVER['SERVER_NAME'],strpos($_SERVER['SERVER_NAME'],"."),100));
if(session_id ==''){session_start();}
Run Code Online (Sandbox Code Playgroud)
这意味着xycom和zycom将使用常见的会话帮助我,请
目前,我使用以下代码填充选择框:
<select name="klas_jaar" value="{jaar_id}">
<?php foreach ($jaren as $jaar):?>
<option value="<?=$jaar->jaar_id?>"><?=$jaar->schooljaar?></option>
<?php endforeach;?>
</select>
Run Code Online (Sandbox Code Playgroud)
值集与选项的值具有相同的ID.但是,当转到此页面时,它不会将请求的值设置为选中.
我究竟做错了什么?
我正在尝试使用PHP(Codeigniter)获取S3中子文件夹的大小.如果我在文件夹中指定了一个文件,则返回数据,但是如果我指定了我得到的文件夹:
[NoSuchKey] The specified key does not exist.
Run Code Online (Sandbox Code Playgroud)
我认为这意味着它无法找到文件/文件夹.文件夹不是对象,你可以得到的大小?
我已经在Windows上使用了S3浏览器,并列出了文件夹及其大小.
这是我正在使用的代码片段:
$userdir = 'userdata/'.$row->name;
$userdata = $this->s3->getObject('bucket_name',$userdir,false);
foreach ($userdata as $name => $val) {
$totalSize += $val['size'];
}
$totalSize = ($totalSize / 1024 / 1024 / 1024);
Run Code Online (Sandbox Code Playgroud)
任何想法赞赏!
谢谢!
我正在考虑将CI会话存储在数据库中,这样我就可以显示当前有多少用户在线,谁具体在线等等.
查看http://codeigniter.com/user_guide/libraries/sessions.html,我是否理解信息将存储在表格的user_data列中ci_session?意思是,也许我只是将用户的id存储在那里?