我使用CI的用户指南来创建会话表.
CREATE TABLE IF NOT EXISTS `sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
Run Code Online (Sandbox Code Playgroud)
每当我$db['default']['stricton'] = TRUE在database.php中时,都会显示此错误
错误号码:1364
字段'user_data'没有默认值
INSERT INTO
sessions(session_id,ip_address,user_agent,last_activity)VALUES( '2b92823888c4c5eb4b5b2ae25282ce9e', '192.168.1.4', '的Mozilla/5.0(Windows NT的6.1; WOW64)为AppleWebKit/535.1(KHTML,例如Gecko)铬/ 14.0.835.186 Safari浏览器/ 535.1',1317346730 )文件名:libraries/Session.php
行号:327
但是,我想强制执行严格的SQL.
// or fetch the output of a module
$widget = Request::forge('mymodule/mycontroller/mymethod/parms', false)->execute();
echo $widget;
Run Code Online (Sandbox Code Playgroud)
这在我调用的函数具有action_前缀时有效,但是当我删除前缀(因为我不希望它被浏览器调用)时,即使我将第二个参数设置为,它也不再起作用false.
这是一个例子:
作品
在一个控制器中我打电话:
$widget = Request::forge('mymodule/mycontroller/mymethod')->execute();
echo $widget;
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
public function action_mymethod()
{
echo 'works';
}
Run Code Online (Sandbox Code Playgroud)
失败,404
在一个控制器中我打电话:
$widget = Request::forge('mymodule/mycontroller/mymethod', false)->execute();
echo $widget;
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
public function mymethod()
{
echo 'works';
}
Run Code Online (Sandbox Code Playgroud)