0

私は本当に解決できない問題に遭遇しました(私はfuelphpの初心者です)。

したがって、モデルに入力を配置すると、このエラーが発生します

ErrorException [ Error ]: Class 'Model\Input' not found

セッションで試してみると同じことです

ErrorException [ Error ]: Class 'Model\Session' not found

そして、挿入されていない値をハードコーディングしようとすると、クエリをデバッグしてエラーは発生しませんでした。値が投稿されていることを示していますが(ハードコード値を渡す場合)、データベースには挿入されていません。

私のコード

モデル

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'),
            ));
        }

}

コントローラ

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;
}

誰かが私が間違っていることのヒントを教えてくれませんか?

ありがとうございました

PS:コントローラーでクエリデバッグの検証を削除しました

4

1 に答える 1

5

行ったように、ファイルの先頭で名前空間を宣言すると

namespace Model;

これは、名前空間が明示的に定義されていない場合に呼び出されるすべてのクラスの名前空間を宣言します。たとえば、Session への呼び出しは、Model\Session実際に存在するときに実際に調べています。\Fuel\Core\Session

これには 2 つの方法があります。use言語構造への呼び出しを使用して、質問で自分自身の例を示しました。

use DB;

これにより、PHP はこの名前空間だけでなく、既に使用されているクラス (この場合は Model) も検索します。

もう 1 つの方法は、明示的な名前空間でクラスを呼び出すことです。例えば

\Fuel\Core\Session::get();

また、Fuel は便宜上、すべてのコア クラスをルート名前空間にエイリアスします。\Fuel\Coreこれが意味することは、を使用するだけでクラスを直接呼び出すこともできるということです\。例えば

\Session::get();
于 2012-08-17T08:47:03.933 に答える