Могу ли я сохранить новые связанные объекты по ссылке, не копируя идентификаторы вручную в ORM Kohana 3? - PullRequest
1 голос
/ 30 сентября 2010

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

т.е.

$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

1 Ответ

0 голосов
/ 30 сентября 2010

Вот оно:

$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();

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

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

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