1

テーブルを結合する単純なクエリを Sugar 7.2 で作成しようとしています。この SQL は、SugarQuery() を使用して Sugar フレームワークで作成しようとしているものです。

SELECT * FROM keyname_table_a LEFT JOIN keyname_table_b

というわけで作成したのは以下です。コア モジュールを使用すると問題なく動作しますが、作成したカスタム モジュールに切り替えると、Sugar によってログアウトされ、ログイン プロンプトが表示されます。

$query = new SugarQuery();
$query->from(BeanFactory::getBean('keyname_table_a'));
$query->join('keyname_table_b');
$results = $query->execute();

return print_r($results, true);

上記によりログアウトされ、ポップアップ メッセージに次のエラー メッセージが表示され (app.alert.show の動作と同様)、ログアウトされます。

Error: Request failure, or, missing/invalid parameter. Please contact technical support

「from」テーブルと「join」テーブルをそれぞれ「Accounts」と「cases」に置き換えると、クエリは正常に機能し、期待される結果が得られます。ただし、それをカスタム モジュールに切り替えると、上記のエラーが発生し、すぐにログアウトされます。

関係が存在し、2 つを結び付けるデータがあることを確認しました。Sugar では 1 対多の関係です。table_aは 1 つtable_bですが、多くあります。

2 つのカスタム モジュールをSugarQuery()オブジェクトに結合する適切な方法は何ですか?

4

2 に答える 2

2

table_name またはリレーションシップ名の代わりにリンク フィールド名を渡す必要があります

$query = new SugarQuery();
$query->from(BeanFactory::getBean('keyname_table_a'));
$query->join('link_name');
$results = $query->execute();
于 2015-02-27T07:41:35.410 に答える
1

結合は関係名である必要があります。テーブルを直接結合したい場合は、joinTable() を使用できます。

上記の Accounts の例では、cases はテーブル名ではなくリレーションシップ名です。

すてきな一日を!

于 2014-06-17T19:30:41.113 に答える