0

2 つのテーブルを結合してデータベースから値を取得するクエリを作成しましたが、エラーがスローされます。

以下は、私が書いたSQLクエリです。

if ($selected_key_type != null ) {
    $o = ORM::factory('organization')->join_table('keywords_organization','keywords_organization.organization_id', 'organization.id')->where('keywords_organization.keyword_id',$selected_key_type);


    }

以下は表示されているエラーです

Fatal error: Call to a member function where() on a non-object in /var/www/xxxx/html/application/controllers/organizations.php on line 51

どんな助けでも大歓迎です:)

4

3 に答える 3

0

join_table() はあなたが探していたものではありません。join() は正しいメソッドであり、Kohana 2+ のクエリ ビルダーの一部です。参考までに、join_table() はアルファベット順の比較を使用して、結合テーブルの名前を選択します。したがって、$this 以外の値を返すメソッドです。チェーン可能なメソッド $class->method1()->method2()->method3() は $this を返します。これにより、チェーン可能になります。私は Kohana 3.2 ユーザーです。上記の元のコードが正しければ、結合部分を除いて、これは機能するはずです。

if ($selected_key_type != null ) {
    $o = ORM::factory('organization')
        ->join('keywords_organization','keywords_organization.organization_id', 'organization.id')
        ->where('keywords_organization.keyword_id',$selected_key_type);
}

作成する結合のタイプを指定する 4 番目のパラメーターを join() に追加することもできます。詳細については、 http://docs.kohanaphp.com/libraries/database/builder#joinを参照してください。

于 2012-05-20T09:12:14.723 に答える
0

使用している構文が正しくありません。

そのはず:

$o = ORM::factory('organization')
    ->join('keywords_organization','LEFT')
    ->on('keywords_organization.organization_id', '=', $selected_key_type)
    ->find_all();

ソース: https://stackoverflow.com/a/5685379/604041

于 2012-05-17T19:16:26.810 に答える
0

join_table は、ピボット テーブルの作成に使用される 1 つのパラメータ join_table('table_name') を取ります。したがって、join_table() ではなく join() を使用しようとしていると思います。

Kohana 2.3.4 ORM ピボット テーブル クエリ

于 2012-05-18T06:28:02.203 に答える