我有两个MySQL表'experts'(id,name)和“ languages”(id,title)。在我的网站上,我可以为专家提供名称并发送到数据库(没有问题)。
$expert = R::dispense('experts');
$expert->name = $data['name'];
R::store($expert);
另外,我在数据库中有一个表,其中包含100多种语言,这些语言显示在我的网站上的多个下拉菜单中。
如何管理“专家”和“语言”之间的多对多连接,以便可以在表格experts_languages中存储专家的几种/多种语言?
谢谢!
最佳答案
我没有完全理解这个问题,但是如果您需要建立experts
和lang
连接,那么我认为many to many
方法可以使用,这是RedBeanPHP
网站上的示例:
<?php
list($vase, $lamp) = R::dispense('product', 2);
$tag = R::dispense( 'tag' );
$tag->name = 'Art Deco';
//creates product_tag table!
$vase->sharedTagList[] = $tag;
$lamp->sharedTagList[] = $tag;
R::storeAll( [$vase, $lamp] );
?>
一对多-https://redbeanphp.com/index.php?p=/one_to_many
ManyToOne-https://redbeanphp.com/index.php?p=/many_to_one
ManyToMany-https://redbeanphp.com/index.php?p=/many_to_many
我个人使用过它,似乎行太多了,但是一切都很清楚:)
<?php
//if u create new table
$exp = R::dispense('experts');
$exp->name = 'name';
R::store($exp);
$lang = R::dispense('language');
$lang->name = 'name';
R::store($lang);
//or if you need to interact with an existing post
$exp = R::load('experts',$eId);
$exp = R::load('language',$lId);
//
$el = R::dispense('experts_language'); //new table many to many
$el->experts = $exp;
$el->language = $lang;
R::store($el);
print_r($exp->ownExpertsLanguageList);
?>