除了在大学写一些简单的Java单元测试之外,我从未真正做过任何严肃的测试.我想尝试进入测试实践,所以我想从这个我正在开发的简单网站开始.
该站点是使用CodeIgniter构建的,除了联系表单记录已输入数据库的内容之外,它实际上并不执行任何动态操作.
我使用TOAST为该控制器编写了两个单元测试,用于测试接触模型的插入和检索功能,您可以在pastebin上看到这些功能.
您会推荐哪些其他测试实践以及可以应用于这样一个小型Web应用程序的内容?
我有一个使用CodeIgniter的网站,现在几乎完成了.我的问题是,即使我已经实现了会话并维护了一个登录系统,一个人可以通过在浏览器地址栏中输入URL来访问任何页面.
我已经实施了患者注册会议,如下所示:
function index(){
$this->is_logged_in();
}
function log_out(){
$this->session->sess_destroy();
redirect('login_controller');
}
function is_logged_in(){
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in)||$is_logged_in!= TRUE ){
redirect('login_controller');
}else{
$this->main();
}
}
Run Code Online (Sandbox Code Playgroud)
匿名用户无法通过键入控制器名称来访问系统,如下所示:
但他们可以这样做:
HTTP://localhost/demo_site/index.php/register_controller/search_patient
通过键入控制器名称无法访问人员,但可以通过键入比控制器更长的URL来进入系统,如上所示.
这里有什么问题?有什么可能的解决方案?
当我创建一个相当复杂的表单,用于编辑数据库记录时,我正在加载控制器,将请求发送到模型以生成表单,然后从模型本身加载输出,而不是将表单作为$ string发送到视图插入页面.
我一直想知道我们是否应该在模型或视图中创建表单(需要访问数据库甚至创建表单,因为它是动态的),如果它在模型中创建,我们是否应该将其创建为字符串并将其发送到视图.
我知道这里没有"完美"的答案,但我们正在努力实现标准化,以便在我们引入开发人员时,我们已经采用行业标准的方式(我们仍在学习).使用Code Igniter框架.
我如何在ActiveRecord CodeIgniter模型中设置多对多关系?像RoR has_many,:through =>'table1_table2'
从表格中检索日期范围之间的项目.
日期(db表字段名称调用:submission_date)作为dMy存储在数据库中(例如:21-Dec-10)
它以sysdate的形式存储在oracle数据库中.(它需要以该格式保留在数据库中,因此不能选择更改其存储方式的格式)
我想将21-Dec-10转换为20101221,所以我可以将它与用户发布的日期进行比较,这是两个值,end_date,begin_date
我只需要将submission_date正确转换为Ymd(20101221)
以下是理论上我想做的事情:
select
*
from
table
where
(convert(Ymd=>submission_date) >= $begin_date
AND
convert(Ymd=>submission_date) <= $end_date)
Run Code Online (Sandbox Code Playgroud) 是否有正确的语法来避免codeigniter中的div?我不喜欢一直打开和关闭标签......
<div class="theForm">
<?php
echo form_open('edit/links');//this form uploads
echo "Enter the Name: ". form_input('name','name');
echo "Enter the Link: ". form_input('url','url');
echo " ".form_submit('submit', 'Submit');
echo form_close();
if (isset($linksQuery) && count($linksQuery)){
foreach($linksQuery as $link){
echo anchor($link['link'], $link['name'].".", array("class" => "links"));
echo form_open('edit/links',array('class' => 'deleteForm'));
echo form_hidden('name',$link['name']);
echo " ".form_submit('delete','Delete');
echo form_close();
echo br(2);
}
}
?>
</div>
Run Code Online (Sandbox Code Playgroud) 我可以在控制器类中调用辅助函数吗?
假设我有_open_form方法的控制器
class User extends Controller {
function _open_form($action){
print_r(form_open($action));
}
}
Run Code Online (Sandbox Code Playgroud)
我试图回显form_open()的结果,但它返回null.似乎辅助函数不能在控制器内部调用
如果你想知道为什么我需要在控制器内使用它而不是在视图中,因为我们需要使用给定的模板解析器xD
我是codeigniter的新手.
我想知道使用$ CI =&get_instance();
这用于错误记录或全局配置变量.
提前致谢.
我想在用户注册用户名mysite.com/username时为我的用户创建这种URL
我在这个网站上搜索了很多帖子,我看到人们这样做就像mysite.com/user/username
我想摆脱用户,直接进入mysite.com/username
最好的方法是什么?
如果#(hash)要转到页面的特定部分,你如何绕过默认行为?我遇到的问题是#字符是SEO友好URL的一部分,它是一个标题而#(hash)是内容的一部分(即与C#一样).我无法检索整个字符串,我只在#之前得到字符.
例:
www.domain.com/C#-programming-book
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我只得到'C'而不是'-programming-book'部分.我目前没有使用任何javascript,并且只想使用PHP解决方案.
在任何人建议我使用url编码之前,seo友好网址的标准是它应该是人类可读的并且容易记住.因此,将哈希值转换为'%23'并未通过标准.
周围没有办法吗?
codeigniter ×10
php ×8
activerecord ×1
controller ×1
forms ×1
helper ×1
html-helper ×1
mysql ×1
oracle ×1
seo ×1
syntax ×1
testing ×1
unit-testing ×1
url ×1