1

Kohana 3.2 の新しいコピーをインストールし、データベースを構築し、最初のモデルを作成して、テストを試みました。モデルの「保存」メソッドが 2 回実行されていることを除いて、すべて正常に動作します。データベースには 1 つではなく 2 つの新しいエントリが作成されます。この問題は、以下に示す「検索」コードを使用した場合にのみ発生します。

モデルの保存が 2 回実行されるのはなぜですか?

コードは次のとおりです。

class Controller_Welcome extends Controller {

public function action_index()
{

    $rating = ORM::factory('rating');

    $rating->user_id = 1;
    $rating->userlevel_id = 3;
    $rating->category_id = 1;
    $rating->page_id = 1;
    $rating->rating = 4;
    $rating->comments = 'This one is a real killer';
    $rating->ratingstatus_id = 1;

    $rating->save();

    $found = ORM::factory('rating')
        ->where('id', '=', 1)
        ->find();

    $this->response->body($found->comments); // Test to check for found data
}

} // End Welcome

前もって感謝します!

4

2 に答える 2

1

私の問題を引き起こした2つの問題があります:

  1. サーバーに favicon.ico がありませんでした。多くのブラウザーが 1 つを要求し、実際のファイルまたはディレクトリではないすべての URL がインデックス ページにリダイレクトされます。ページをロードするたびに、ブラウザーは欠落しているファビコンを要求し、インデックス ページにリダイレクトされました (2 回の要求)。私のログを見た後、このページは私にヒントを与えたものでした: http://forum.kohanaframework.org/discussion/7447/error-kohana_request_exception/p1

  2. ファビコンを追加した後も、ダブル リクエストの動作が時々見られました。これは Google Chrome の動作であることが判明しました。Chrome はページをプリフェッチするため、コンテンツを変更するたびに、Chrome はページをプリフェッチしてキャッシュします (リクエストを追加します)。

ファビコンを追加した後、Chrome 以外のブラウザーを使用すると、すべてが期待どおりに動作します。

于 2012-07-26T18:35:11.243 に答える
0
$rating = ORM::factory('rating');

この行は何も表していません。

新しいレコードを作成する場合は、save() の代わりに create() を使用する必要があります。

$rating = new Model_Rating;

$rating->user_id = 1;
$rating->userlevel_id = 3;
$rating->category_id = 1;
$rating->page_id = 1;
$rating->rating = 4;
$rating->comments = 'This one is a real killer';
$rating->ratingstatus_id = 1;
$rating->create();

指定された ID を持つ単一の評価オブジェクトをロードする場合:

$found = ORM::factory('rating', 1);
于 2012-07-25T00:06:03.537 に答える