私はRedBeanPHPを初めて使いましたが、ドキュメントを調べましたが、$bean->withCondition('...', [...]);
で共有リストをフィルタリングする方法のようにR::findAll()
の結果をフィルタリングする方法を見つけることができませんでしたか?R :: findAll()の結果を結合カラムでフィルタリングする方法は? - RedBeanPHP4
私の場合:
は、私は2つのテーブルuser, usertype
を持っており、彼らは1対多の関係を持っているが、すべてのユーザーがユーザータイプを持っている必要がありますし、複数のユーザーが同じタイプであることを意味します。
table: usertype
+--------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | UNI | NULL | |
| psname | varchar(10) | NO | UNI | NULL | |
+--------+------------------+------+-----+---------+----------------+
table: user
+-------------+---------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+-------------------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(16) | NO | UNI | NULL | |
| password | char(60) | NO | | NULL | |
| email | varchar(64) | NO | UNI | NULL | |
| is_active | tinyint(1) unsigned | NO | | 0 | |
| created_at | datetime | NO | | CURRENT_TIMESTAMP | |
| usertype_id | int(11) unsigned | NO | MUL | NULL | |
+-------------+---------------------+------+-----+-------------------+----------------+
だから今、私はそのタイプADMIN
はありませんが、以下のユーザーのみを取得したい機能していません。
$not_admins = R::findAll('user', 'WHERE @joined.usertype.type != ?', ['ADMIN']);
withCondition()
メソッドでも同じ構文が有効であることを確認できますが、関連レコードを取得する場合や、RedBeanPHP用語集の作業/フィルタのみで共有ビーンのみを検索する場合にのみ有効です。
完全なテーブル構造を読んでいませんでした。 – Nick