我有两个MySQL表'experts'(id,name)和“ languages”(id,title)。在我的网站上,我可以为专家提供名称并发送到数据库(没有问题)。

$expert = R::dispense('experts');
$expert->name = $data['name'];
R::store($expert);


另外,我在数据库中有一个表,其中包含100多种语言,这些语言显示在我的网站上的多个下拉菜单中。
如何管理“专家”和“语言”之间的多对多连接,以便可以在表格experts_languages中存储专家的几种/多种语言?

谢谢!

最佳答案

我没有完全理解这个问题,但是如果您需要建立expertslang连接,那么我认为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);
?>

09-13 03:22