我是RedBeanPHP的新手我研究過他們的文檔,但無法找到如何過濾R::findAll()
的結果,比如我們如何通過$bean->withCondition('...', [...]);
過濾共享列表?如何通過連接列篩選R :: findAll()結果? - RedBeanPHP4
我的情況:
我有兩個表user, usertype
,他們有一個一對多的關係,意味着每個用戶必須有一個用戶類型和多個用戶可以是同一類型。
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術語工作/僅篩選共享bean。
沒有讀你的全表結構,我想你已經得到了它的要點 – Nick