TRUE
ビューでグローバル PHP フィルターを作成しました。条件が満たされたとき、および結果セットからその行を削除する必要があるときに、戻り値が TRUE になることを期待しています。ビューはその結果をテーブルに表示します。
私が持っているフィルターコードは次のとおりです
global $user;
$uid = $user->uid;
$bid = db_query("SELECT entity_id FROM {field_data_field_bid_request_reference} WHERE field_bid_request_reference_line_item_id = '$row->line_item_id'");
foreach($bid as $value) {
$node_uid = db_query("SELECT uid FROM {node} WHERE nid = '$value->entity_id'")->fetchField();
if( $node_uid != $uid) {
return TRUE;
}
}
if ステートメントに関しては、期待どおりの結果が得られています。は$node_uid
まさに欲しいものを返していuid
ます。nid
entity_id
db_query
私のテストでは、それぞれにline_item_id
. には6つの可能な結果があり$node_uid
、aを使用してforeach内のdrupal_set_message
4つを見ると、それらが表示されます。node_id
私のテストケースでは、uid が 5 で、これは 3 回一致するはずです。最終結果には 3 行しか表示されません。
問題は、if ステートメントに一致して返されるはずの 9 行TRUE
が実際に表示される行であり、if ステートメントのテストに失敗して表示されるべき 3 行が出力から削除されることです。これは、戻り値が逆になっているようなものです。
私が何をしても、if ステートメントが渡されたときに戻り値が正しくないかのようです。
node_id
to が to と等しくなく、これらの行がテーブルに表示されない場合が予想されuid
ます。TRUE
何がうまくいかないのか、またこのフィルターをデバッグする方法について、誰か提案を提供できますか?