我遇到了一个我无法解决的问题(我是使用fuelphp的初学者).
所以当我在我的模型中输入输入时,我得到了这个错误
ErrorException [ Error ]: Class 'Model\Input' not found
Run Code Online (Sandbox Code Playgroud)
当我尝试与会话同样的事情
ErrorException [ Error ]: Class 'Model\Session' not found
Run Code Online (Sandbox Code Playgroud)
当我尝试对其中的值进行硬编码而不插入时,会使查询无错误.它显示值已发布(传递硬代码值时)但未将其插入数据库中.
我的代码
模型
namespace Model;
use DB;
class Event extends \Model {
static function send_event()
{
$query = DB::insert('events');
$query->set(array(
'user_id' => Session::get('sentry_user'),
'event_name' => Input::post('event_name'),
'event_desc' => Input::post('event_desc'),
'event_start' => Input::post('event_start'),
'event_end' => Input::post('event_end'),
));
}
}
Run Code Online (Sandbox Code Playgroud)
调节器
function action_send_data()
{
$response = Response::forge();
$val = Validation::forge('events');
$val->add_field('event_name', 'Esemény neve', 'required');
$val->add_field('event_desc', 'Esemény leírás', 'required');
$val->add_field('event_start', 'Esemény kezd?dik', 'required');
$val->add_field('event_end', 'Esemény kejár', 'required');
Event::send_event();
$response->body(json_encode(array(
'status' => 'ok',
)));
return $response;
}
Run Code Online (Sandbox Code Playgroud)
可以请有人给我一个暗示我做错了什么?
谢谢
PS:在控制器中我删除了查询debuging的验证
当您在文件顶部声明命名空间时,就像您一样
namespace Model;
Run Code Online (Sandbox Code Playgroud)
这将声明所有类的名称空间,这些类在未明确定义名称空间的地方调用.例如,您对Session的调用实际上是在查看Model\Session它实际存在的时间\Fuel\Core\Session
有两种方法可以解决这个问题.您已经通过调用use语言构造在自己的问题中演示了一个示例.
use DB;
Run Code Online (Sandbox Code Playgroud)
这会导致PHP在此命名空间中搜索类以及已经使用的类(在本例中为Model).
另一种方法是通过使用显式命名空间调用该类.例如
\Fuel\Core\Session::get();
Run Code Online (Sandbox Code Playgroud)
为方便起见,Fuel还将所有核心类别名为根命名空间.这意味着,你也可以直接致电班\Fuel\Core只用\.例如
\Session::get();
Run Code Online (Sandbox Code Playgroud)