2015-04-07 65 views

回答

1

我只是碰到了同樣的問題,努力使許多一對多的關係,經過一些試驗和錯誤我把它做的工作:

$obj = new ParseObject("ObjectClassName"); 
$obj->setAssociativeArray("relationFieldName", array('__type' => 'Pointer', 'className' => 'relationClassName', 'objectId' => 'relationObjId')); 

例如,如果你想把一個本書通過這本書的作者關鍵用戶,ObjectClassName將,relationFieldName將作者和relationClassName將_user(記得解析的特殊類的前綴爲下劃線)。

讓我知道這是否也適合你!有點令人沮喪,我在Parse's PHP documentation on relations上找不到任何關於此事的信息。我在JS之前有同樣的問題,但至少this question幫助我馬上。

+0

我可以證實這個作品。 有點煩人沒有這方面的文件(或者,至少,我也找不到任何)。 –

0

我有同樣的問題,並創建和數組成爲指針不是解決問題的最佳途徑。

您可以使用SDK中的\ Parse \ ParseOject。

$pointer = parseObject::create('className', $id, true); 

我發現它在ParseObject.php:

/** 
* Static method which returns a new Parse Object for a given class 
* Optionally creates a pointer object if the objectId is provided. 
* 
* @param string $className Class Name for data on Parse. 
* @param string $objectId Unique identifier for existing object. 
* @param bool $isPointer If the object is a pointer. 
* 
* @return ParseObject 
*/ 
public static function create($className, $objectId = null, $isPointer = false) 
0

這聽起來像你想創建一個一對多的關係。你可以使用ParseObject::getRelation來做到這一點,這將返回一個現有的關係,或者,創建一個新的(你可以檢查出定義here)。

$obj = new ParseObject("ObjectClassName"); 

// get a relation (new or existing) 
$relation = $obj->getRelation('myObjects'); 

// add objects to this relation 
$relation->add([$myObject1, $myObject2, $myObject3]); 

// save my object & my relation, with the new objects in it 
$obj->save(); 
代替

如果你正在試圖做的多對多的關係,你要創建一個連接表(技術上加入「類」,像MyParseJoinClass)。如果我誤解,你要嘗試執行一個1-1,你總是可以設置一個對象作爲一個屬性來自動創建一個指向

$obj->set('myPointer', $myPointedObject); 

內部可以使用$obj->_toPointer得到一個數組組成一個指針引用一個對象,但我會建議您利用ParseObject中支持的關係&指針類型,而不是更容易管理。