模型中的Fuelphp输入和会话问题

Sid*_*ide 0 fuelphp

我遇到了一个我无法解决的问题(我是使用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的验证

Ben*_*rne 5

当您在文件顶部声明命名空间时,就像您一样

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)