本文整理汇总了PHP中R::associate方法的典型用法代码示例。如果您正苦于以下问题:PHP R::associate方法的具体用法?PHP R::associate怎么用?PHP R::associate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类R
的用法示例。
在下文中一共展示了R::associate方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: show_Join
public function show_Join()
{
// check if player is already playing some round
$isPlaying = R::getCell("SELECT\n\t\t\tcount(pp.id)\n\t\tFROM\n\t\t\tpoker_player AS pp, poker_round AS pr,\n\t\t\tpoker_player_poker_round AS conn\n\t\tWHERE\n\t\t\t(pr.state = 'running' OR pr.state = 'pending') AND\n\t\t\tconn.poker_player_id = pp.id AND\n\t\t\tconn.poker_round_id = pr.id AND\n\t\t\tpp.id = ?", array($this->_pokerPlayer->getID()));
if ($isPlaying > 0) {
$this->output('state', 'join_ok');
return;
}
// count number of players in current&pending round
$num = R::getCell("SELECT\n\t\t\tcount(pp.id)\n\t\tFROM\n\t\t\tpoker_player AS pp, poker_round AS pr,\n\t\t\tpoker_player_poker_round As conn\n\t\tWHERE\n\t\t\t(pr.state = 'running' OR pr.state = 'pending') AND\n\t\t\tconn.poker_player_id = pp.id AND\n\t\t\tconn.poker_round_id = pr.id");
if ($num >= 8) {
$this->output('state', 'table_full');
} else {
// get next pending round
$pending = R::findOne('poker_round', " state = 'pending'");
if ($pending == null) {
// open new pending round
$pending = R::dispense('poker_round');
$pending->state = 'pending';
$pending->step = 0;
$pending->cards = '';
$pending->ttl = time();
$pending->current_player = null;
R::store($pending);
}
R::associate($this->_pokerPlayer, $pending);
$this->output('state', 'join_ok');
}
}
示例2: addRight
/**
* add right to user
* @param string $type
* @return boolean
*/
public function addRight($type)
{
$right = RCached::findOne('user_right', ' type = ?', array($type), date("d.m.Y"));
if (!$right) {
return false;
}
R::associate($this->bean, $right);
return true;
}
示例3: giveNewQuest
public function giveNewQuest(RedBean_OODBBean $user)
{
$allQuests = Config::getConfig('npc_quests');
$rnd = array_rand($allQuests, 1);
$this->accepted = 0;
$this->quest_id = $rnd;
$this->startnpc = R::findOne('map_npc', ' map != ? ORDER BY RAND() LIMIT 1', array('adminhouse'));
$this->stopnpc = R::findOne('map_npc', ' map != ? AND map != ? AND id != ? ORDER BY RAND() LIMIT 1', array($this->startnpc->map, 'adminhouse', $this->startnpc->getID()));
R::store($this->bean);
R::associate($this->bean, $user);
}
示例4: testFUSE
/**
* Test FUSE and model formatting.
*
* @todo move tagging tests to tag tester.
*
* @return void
*/
public function testFUSE()
{
$toolbox = R::$toolbox;
$adapter = $toolbox->getDatabaseAdapter();
$blog = R::dispense('blog');
$blog->title = 'testing';
$blog->blog = 'tesing';
R::store($blog);
$blogpost = R::load("blog", 1);
$post = R::dispense("post");
$post->message = "hello";
R::associate($blog, $post);
$a = R::getAll("select * from blog ");
RedBean_ModelHelper::setModelFormatter(new mymodelformatter());
$w = R::dispense("weirdo");
asrt($w->blah(), "yes!");
R::tag($post, "lousy,smart");
asrt(implode(',', R::tag($post)), "lousy,smart");
R::tag($post, "clever,smart");
$tagz = implode(',', R::tag($post));
asrt($tagz == "smart,clever" || $tagz == "clever,smart", TRUE);
R::tag($blog, array("smart", "interesting"));
asrt(implode(',', R::tag($blog)), "smart,interesting");
try {
R::tag($blog, array("smart", "interesting", "lousy!"));
pass();
} catch (RedBean_Exception $e) {
fail();
}
asrt(implode(',', R::tag($blog)), "smart,interesting,lousy!");
asrt(implode(",", R::tag($blog)), "smart,interesting,lousy!");
R::untag($blog, array("smart", "interesting"));
asrt(implode(",", R::tag($blog)), "lousy!");
asrt(R::hasTag($blog, array("lousy!")), TRUE);
asrt(R::hasTag($blog, array("lousy!", "smart")), TRUE);
asrt(R::hasTag($blog, array("lousy!", "smart"), TRUE), FALSE);
R::tag($blog, FALSE);
asrt(count(R::tag($blog)), 0);
R::tag($blog, array("funny", "comic"));
asrt(count(R::tag($blog)), 2);
R::addTags($blog, array("halloween"));
asrt(count(R::tag($blog)), 3);
asrt(R::hasTag($blog, array("funny", "commic", "halloween"), TRUE), FALSE);
R::unTag($blog, array("funny"));
R::addTags($blog, "horror");
asrt(count(R::tag($blog)), 3);
asrt(R::hasTag($blog, array("horror", "commic", "halloween"), TRUE), FALSE);
// No double tags
R::addTags($blog, "horror");
asrt(R::hasTag($blog, array("horror", "commic", "halloween"), TRUE), FALSE);
asrt(count(R::tag($blog)), 3);
}
示例5: showdown
public function showdown()
{
$allPlayers = R::related($this->bean, 'poker_player');
$pokerHands = array(10 => new PokerParser("[a>a>a>a>a"), 9 => new PokerParser("a>a>a>a>a"), 8 => new PokerParser("1{4}"), 7 => new PokerParser("1{3}2{2}"), 6 => new PokerParser("a{5}"), 5 => new PokerParser("?>?>?>?>?"), 4 => new PokerParser("1{3}"), 3 => new PokerParser("1{2}2{2}"), 2 => new PokerParser("1{2}"), 1 => new PokerParser("?"));
$bestValue = -1;
$winners = array();
$totalPot = $this->bean->global_pot;
// new round to move players to
$nextRound = R::findOne('poker_round', " state='pending'");
if ($nextRound == null) {
$nextRound = R::dispense('poker_round');
$nextRound->state = 'pending';
$nextRound->step = 0;
$nextRound->global_pot = 0;
R::store($nextRound);
}
foreach ($allPlayers as $p) {
$cards = array_merge(json_decode($p->cards, true), json_decode($this->bean->cards, true));
$totalPot += $p->bid;
$val = 0;
foreach ($pokerHands as $value => $parser) {
if ($parser->check($cards)) {
// player has this
$val = $value * 100 + $parser->getHighestCardValue();
break;
}
}
if ($val > $bestValue) {
$bestValue = $val;
$winners = array($p);
} elseif ($val == $bestValue) {
$winners[] = $p;
}
// kick from current round
R::unassociate($this->bean, $p);
// put into next round
R::associate($nextRound, $p);
}
$winnerCount = count($winners);
$winAmount = floor($totalPot / $winnerCount);
$winnerNames = array();
foreach ($winners as $win) {
$usr = R::relatedOne($win, 'user');
$usr->cash += $winAmount;
$winnerNames[] = $usr->username;
R::store($usr);
}
R::trash($this->bean);
return array("winners" => $winnerNames, "amount" => $winAmount, "bestValue" => $bestValue);
}
示例6: api_postcommit
public function api_postcommit()
{
$revision = $_POST["rev"];
$message = $_POST["msg"];
$post = R::dispense('homepage_posts');
$post->title = "Update R" . $revision;
$post->content = "Ein Update auf R" . $revision . " wurde aufgespielt. \nÄnderungen: \n\n" . $message;
$post->link = "";
$post->time = time();
R::store($post);
$usr = R::load('user', 10);
R::associate($post, $usr);
echo "ok";
}
示例7: subscribe
/**
User adds himself to a mailing list
*/
public static function subscribe()
{
if (!$_REQUEST['list']) {
return RedView::set('error', "Choose a list.");
}
$list = R::load('list', $_REQUEST['list']);
if (!$list->id) {
return RedView::set('error', "List doesn't exist.");
}
$scrip = Model_Subscription::createBean($_REQUEST);
$scrip->main = self::getUser();
R::associate($list, $scrip);
$_SESSION['user'] = $scrip->main->export();
return RedView::set('message', 'Success!');
}
示例8: show_Main
public function show_Main()
{
$poker_player = R::relatedOne($this->user, 'poker_player');
if ($poker_player == null) {
$poker_player = R::dispense('poker_player');
$poker_player->status = 'view';
$poker_player->cards = '';
$poker_player->bid = 0;
$poker_player->all_in = false;
$poker_player->all_in_amount = 0;
R::store($poker_player);
R::associate($poker_player, $this->user);
}
if ($poker_player->status == 'view') {
Framework::TPL()->assign('can_join', true);
}
}
示例9: domainToAccount
function domainToAccount($domainname, $account, $account_id)
{
$owner = R::findOne('owner', 'account_id=?', array($account_id));
if ($owner === false) {
$owner = R::dispense("owner");
$owner->name = $account;
$owner->account_id = $account_id;
$id = R::store($owner);
}
$domain = R::findOne('domain', 'name=?', array($domainname));
#$domain = R::load( 'domain', $id );
R::associate($owner, $domain);
$otherDomainsDefinedInVhost = R::find("domain", "vhost_group_key = ?", array($domain->vhost_group_key));
foreach ($otherDomainsDefinedInVhost as $otherDomain) {
if ($otherDomain->type === 'name') {
continue;
}
R::associate($owner, $otherDomain);
}
}
示例10: save
public function save($runValidation = true)
{
foreach ($this->deferredRelateBeans as $bean) {
R::associate($this->bean, $bean);
if (!RedBeanDatabase::isFrozen()) {
$types = array($this->bean->getMeta("type"), $bean->getMeta("type"));
sort($types);
$tableName = implode("_", $types);
foreach ($types as $type) {
$columnName = "{$type}_id";
RedBeanColumnTypeOptimizer::optimize($tableName, $columnName, 'id');
}
}
}
$this->deferredRelateBeans = array();
foreach ($this->deferredUnrelateBeans as $bean) {
R::unassociate($this->bean, $bean);
}
$this->deferredUnrelateBeans = array();
return true;
}
示例11: testBasicThroughFacade
/**
* Basic tests through Facade.
*
* @return void
*/
public function testBasicThroughFacade()
{
$toolbox = R::$toolbox;
$adapter = $toolbox->getDatabaseAdapter();
$writer = $toolbox->getWriter();
$redbean = $toolbox->getRedBean();
$pdo = $adapter->getDatabase();
$a = new RedBean_AssociationManager($toolbox);
asrt(R::$redbean instanceof RedBean_OODB, TRUE);
asrt(R::$toolbox instanceof RedBean_Toolbox, TRUE);
asrt(R::$adapter instanceof RedBean_Adapter, TRUE);
asrt(R::$writer instanceof RedBean_QueryWriter, TRUE);
$book = R::dispense("book");
asrt($book instanceof RedBean_OODBBean, TRUE);
$book->title = "a nice book";
$id = R::store($book);
asrt($id > 0, TRUE);
$book = R::load("book", (int) $id);
asrt($book->title, "a nice book");
$author = R::dispense("author");
$author->name = "me";
R::store($author);
$book9 = R::dispense("book");
$author9 = R::dispense("author");
$author9->name = "mr Nine";
$a9 = R::store($author9);
$book9->author_id = $a9;
$bk9 = R::store($book9);
$book9 = R::load("book", $bk9);
$author = R::load("author", $book9->author_id);
asrt($author->name, "mr Nine");
R::trash($author);
R::trash($book9);
pass();
$book2 = R::dispense("book");
$book2->title = "second";
R::store($book2);
R::associate($book, $book2);
asrt(count(R::related($book, "book")), 1);
$book3 = R::dispense("book");
$book3->title = "third";
R::store($book3);
R::associate($book, $book3);
asrt(count(R::related($book, "book")), 2);
asrt(count(R::find("book")), 3);
asrt(count(R::findAll("book")), 3);
asrt(count(R::findAll("book", " WHERE ROWNUM <= 2")), 2);
asrt(count(R::find("book", " id=id ")), 3);
asrt(count(R::find("book", " title LIKE ?", array("third"))), 1);
asrt(count(R::find("book", " title LIKE ?", array("%d%"))), 2);
// Now with new SQL Helper argument
asrt(count(R::find("book", R::$f->begin()->addSQL('title LIKE ? ')->put('third'))), 1);
asrt(count(R::find("book", R::$f->begin()->addSQL('title LIKE ? ')->put('%d%'))), 2);
asrt(count(R::find("book", R::$f->begin()->addSQL('title')->like(' ? ')->addSQL(' ORDER BY id ')->desc()->put('%d%'))), 2);
//Find without where clause
asrt(count(R::findAll('book', ' order by id')), 3);
R::unassociate($book, $book2);
asrt(count(R::related($book, "book")), 1);
R::trash($book3);
R::trash($book2);
asrt(count(R::related($book, "book")), 0);
asrt(count(R::getAll("SELECT * FROM book ")), 1);
asrt(count(R::getCol("SELECT title FROM book ")), 1);
asrt((int) R::getCell("SELECT 123 FROM DUAL "), 123);
$book = R::dispense("book");
$book->title = "not so original title";
$author = R::dispense("author");
$author->name = "Bobby";
R::store($book);
$aid = R::store($author);
R::associate($book, $author);
$author = R::findOne("author", " name = ? ", array("Bobby"));
$books = R::related($author, "book");
$book = reset($books);
testpack("Test Swap function in R-facade");
$book = R::dispense("book");
$book->title = "firstbook";
$book->rating = 2;
$id1 = R::store($book);
$book = R::dispense("book");
$book->title = "secondbook";
$book->rating = 3;
$id2 = R::store($book);
$book1 = R::load("book", $id1);
$book2 = R::load("book", $id2);
asrt($book1->rating, '2');
asrt($book2->rating, '3');
$books = R::batch("book", array($id1, $id2));
R::swap($books, "rating");
$book1 = R::load("book", $id1);
$book2 = R::load("book", $id2);
asrt($book1->rating, '3');
asrt($book2->rating, '2');
testpack("Test R::convertToBeans");
$SQL = "SELECT '1' as id, a.name AS name, b.title AS title, '123' as rating FROM author a LEFT JOIN book b ON b.id = ? WHERE a.id = ? ";
//.........这里部分代码省略.........
示例12: tag
public static function tag(RedBean_OODBBean $bean, $tagList = null)
{
if (is_null($tagList)) {
$tags = R::related($bean, "tag");
$foundTags = array();
foreach ($tags as $tag) {
$foundTags[] = $tag->title;
}
if (self::$flagUseLegacyTaggingAPI) {
return implode(",", $foundTags);
}
return $foundTags;
}
if ($tagList !== false && !is_array($tagList)) {
$tags = explode(",", (string) $tagList);
} else {
$tags = $tagList;
}
R::clearRelations($bean, "tag");
if ($tagList === false) {
return;
}
foreach ($tags as $tag) {
$t = R::findOne("tag", " title = ? ", array($tag));
if (!$t) {
$t = R::dispense("tag");
$t->title = $tag;
R::store($t);
}
R::associate($bean, $t);
}
}
示例13: exec
public function exec($params)
{
$data = unserialize(base64_decode($_POST['data']));
$linker = mvc\retrieve('beanLinker');
if ($data['hostname'] == null || empty($data['hostname'])) {
die('Missing hostname');
}
$server = R::findOne("server", "name = ? ", array($data['hostname']));
if (!$server instanceof RedBean_OODBBean) {
$server = R::dispense('server');
$server->created = mktime();
}
$server->updated = mktime();
$server->name = $data['hostname'];
$server->int_ip = $data['ipaddress'];
$server->ext_ip = preg_match('/^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:[.](?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$/', $data['external_ip']) ? $data['external_ip'] : '';
$hardware = array('memory' => $data['memorysize'], 'cpucount' => $data['processorcount'], 'cpu' => $data['processor0']);
if (isset($data['disk']['partitions'])) {
$hardware['partitions'] = $data['disk']['partitions'];
}
$server->kernel_release = $data['kernelrelease'];
$server->os = $data['lsbdistid'];
$server->os_release = $data['lsbdistrelease'];
$server->arch = $data['hardwaremodel'];
$server->hardware = serialize($hardware);
$server->type = $data['virtual'];
$server->comment = $server->comment;
// keep existing comment - should be dropped when schema is frozen
$server->is_active = true;
$server->uptime = isset($data['uptime']) ? $data['uptime'] : 0.0;
$server->software_updates = !empty($data['software_updates']) ? serialize($data['software_updates']) : null;
$serverID = R::store($server);
if (isset($data['disk']['physical'])) {
foreach ($data['disk']['physical'] as $disk) {
// TODO: set drives inactive to make sure only active drives are is_active = true;
$drive = R::findOne("drive", "serial_no=?", array($disk['SerialNo']));
if (!$drive instanceof RedBean_OODBBean) {
$drive = R::dispense('drive');
$drive->created = mktime();
$drive->updated = mktime();
$drive->is_active = true;
$drive->setBrand($disk['Model']);
$drive->model = $disk['Model'];
$drive->serial_no = $disk['SerialNo'];
$drive->fw_revision = $disk['FwRev'];
$drive->type = $disk['type'];
} else {
$drive->is_active = true;
$drive->updated = mktime();
}
R::store($drive);
R::associate($server, $drive);
}
}
if ($server->type === 'xen0' && isset($data['domUs']) && !empty($data['domUs'])) {
foreach ($data['domUs'] as $domUName) {
$domU = array();
$result = array();
$domU = R::findOne("server", "name=?", array($domUName));
if (!$domU instanceof RedBean_OODBBean) {
$domU = R::dispense('server');
$domU->name = $domUName;
$domU->created = mktime();
$domU->updated = mktime();
$domU->type = 'xenu';
R::attach($server, $domU);
$domUID = R::store($domU);
} else {
$domU->updated = mktime();
R::attach($server, $domU);
// server is parent of domU
}
}
}
// Handle domains
if (isset($data['vhosts'])) {
$updateTimestamp = mktime();
foreach ($data['vhosts'] as $v) {
$vhost = R::findOne('vhost', 'server_id=? AND server_name=?', array($serverID, $v['servername']));
if (!$vhost instanceof RedBean_OODBBean) {
$vhost = R::dispense('vhost');
$vhost->created = $updateTimestamp;
}
$vhost->updated = $updateTimestamp;
$vhost->server_name = $v['servername'];
$vhost->file_name = isset($v['filename']) ? $v['filename'] : null;
$vhost->document_root = isset($v['documentroot']) ? $v['documentroot'] : null;
$vhost->server_admin = isset($v['serveradmin']) ? $v['serveradmin'] : null;
$app = null;
if (isset($v['app']['name'])) {
$app = R::findOne('app', 'name=?', array($v['app']['name']));
if (!$app instanceof RedBean_OODBBean) {
$app = R::dispense('app');
$app->name = $v['app']['name'];
R::store($app);
}
}
$vhost->app_version = isset($v['app']['version']) ? $v['app']['version'] : null;
//$vhost->is_valid = true;
$vhost->comment = '';
//.........这里部分代码省略.........
示例14: testViews
function testViews($p)
{
R::exec(" drop table if exists bandmember_musician CASCADE");
R::exec(" drop table if exists band_bandmember CASCADE");
R::exec(" drop table if exists prefix_bandmember_musician CASCADE");
R::exec(" drop table if exists prefix_band_bandmember CASCADE");
R::exec(" drop table if exists musician CASCADE ");
R::exec(" drop table if exists bandmember CASCADE");
R::exec(" drop table if exists band CASCADE");
R::exec(" drop table if exists prefix_musician CASCADE");
R::exec(" drop table if exists prefix_bandmember CASCADE");
R::exec(" drop table if exists prefix_band CASCADE");
list($mickey, $donald, $goofy) = R::dispense("musician", 3);
list($vocals1, $vocals2, $keyboard1, $drums, $vocals3, $keyboard2) = R::dispense("bandmember", 6);
list($band1, $band2) = R::dispense("band", 2);
$band1->name = "The Groofy";
$band2->name = "Wickey Mickey";
$mickey->name = "Mickey";
$goofy->name = "Goofy";
$donald->name = "Donald";
$vocals1->instrument = "voice";
$vocals2->instrument = "voice";
$keyboard1->instrument = "keyboard";
$drums->instrument = "drums";
$vocals3->instrument = "voice";
$keyboard2->instrument = "keyboard";
$vocals3->bandleader = true;
$drums->bandleader = true;
$drums->notes = "noisy";
$vocals3->notes = "tenor";
R::associate($mickey, $vocals1);
R::associate($donald, $vocals2);
R::associate($donald, $keyboard1);
R::associate($goofy, $drums);
R::associate($mickey, $vocals3);
R::associate($donald, $keyboard2);
R::associate($band1, $vocals1);
R::associate($band1, $vocals2);
R::associate($band1, $keyboard1);
R::associate($band1, $drums);
R::associate($band2, $vocals3);
R::associate($band2, $keyboard2);
try {
R::view("bandlist", "band");
fail();
} catch (Exception $e) {
pass();
}
try {
R::view("bandlist", "band,bandmember,musician");
pass();
} catch (Exception $e) {
print_r($e);
fail();
}
//can we do a simple query?
$nameOfBandWithID1 = R::getCell("select name from " . $p . "bandlist where " . R::$writer->getIDField("band") . " = 1\ngroup by " . R::$writer->getIDField("band") . ",\"name\"");
asrt($nameOfBandWithID1, "The Groofy");
//can we generate a report? list all bandleaders
$bandleaders = R::getAll("select bandleader_of_bandmember,name_of_musician,\"name\" AS bandname\n\tfrom " . $p . "bandlist where bandleader_of_bandmember = 1 group by id ");
foreach ($bandleaders as $bl) {
if ($bl["bandname"] == "Wickey Mickey") {
asrt($bl["name_of_musician"], "Mickey");
}
if ($bl["bandname"] == "The Groofy") {
asrt($bl["name_of_musician"], "Goofy");
}
}
//can we draw statistics?
$inHowManyBandsDoYouPlay = R::getAll("select\nname_of_musician ,count( distinct " . R::$writer->getIDField("band") . ") as bands\nfrom " . $p . "bandlist group by " . R::$writer->getIDField("musician") . "_of_musician,name_of_musician order by name_of_musician asc\n");
asrt($inHowManyBandsDoYouPlay[0]["name_of_musician"], "Donald");
asrt($inHowManyBandsDoYouPlay[0]["bands"], '2');
asrt($inHowManyBandsDoYouPlay[1]["name_of_musician"], "Goofy");
asrt($inHowManyBandsDoYouPlay[1]["bands"], '1');
asrt($inHowManyBandsDoYouPlay[2]["name_of_musician"], "Mickey");
asrt($inHowManyBandsDoYouPlay[2]["bands"], '2');
//who plays in band 2
//can we make a selectbox
$selectbox = R::getAll("\n\tselect m." . R::$writer->getIDField("musician") . ", m.name, b." . R::$writer->getIDField("band") . " as selected from " . $p . "musician as m\n\tleft join " . $p . "bandlist as b on b." . R::$writer->getIDField("musician") . "_of_musician = m." . R::$writer->getIDField("musician") . " and\n\tb." . R::$writer->getIDField("band") . " =2\n\torder by m.name asc\n");
asrt($selectbox[0]["name"], "Donald");
asrt($selectbox[0]["selected"], "2");
asrt($selectbox[1]["name"], "Goofy");
asrt($selectbox[1]["selected"], null);
asrt($selectbox[2]["name"], "Mickey");
asrt($selectbox[2]["selected"], "2");
}
示例15: testCreationOfLinkTable
/**
* Test creation of link table.
*
* @return void
*/
public function testCreationOfLinkTable()
{
asrt(in_array('consult', R::$writer->getTables()), FALSE);
$d = R::dispense('doctor')->setAttr('name', 'd1');
$p = R::dispense('patient')->setAttr('name', 'p1');
R::associate($d, $p);
asrt(in_array('consult', R::$writer->getTables()), TRUE);
}