2010-09-29 2 views
1

У меня есть 2 объекта. Игрок и Матч. Игрок является ребенком матча. Я хочу знать, могу ли я создать оба из них одновременно, без ввода идентификатора вручную.Могу ли я сохранить новые связанные объекты через ссылку без копирования идентификатора вручную в ORM Kohana 3?

т.е.

$match = ORM::factory('match'); 

$player1 = ORM::factory('player'); 
$player2 = ORM::factory('player'); 

$player1->match = $match; 
$player2->match = $match; 

$match->save(); 
$player1->save(); 
$player2->save(); 

Подобно ActiveRecord в Ruby,

ответ

0

Вот это:

$match = ORM::factory('match'); 
// fill Match with values 
$match->result = MATCH_RESULT_WIN; 
$match->started = time(); 
// save before using! 
$match->save(); 

$player1 = ORM::factory('player')->where('name', '=', 'Federrer')->find(); 
$player2 = ORM::factory('player')->where('name', '=', 'Nadal')->find(); 
$player1->match = $match; 
$player1->save(); 
$player2->match = $match; 
$player2->save(); 

Обратите внимание, что вы должны использовать сохранен объект ОРМ при установлении его взаимоотношений.

PS. Правильно ли ваши отношения? Один игрок может сыграть много матчей, поэтому я предпочел бы другую схему:

// Match belongs to player1&player2 
$match->player1 = $player1; 
$match->player2 = $player2; 
$match->save();