草庐IT

多对多

全部标签

php - 多个插入到一个表和多对多表

我正在尝试使用PostgreSQL数据库用PHP开发一个问答网站。我有一个创建页面的操作,该页面具有标题、正文、类别和标签。我设法插入了所有这些字段,但是我在插入多个标签值时遇到了一些问题。我使用这个函数将逗号分隔的值放入一个数组中,现在我想要一些东西将每个数组元素插入数据库(避免重复)在表tags上,然后插入我的许多许多关系表questiontags:$tags=explode(',',$_POST['tags']);//Commaseparatedvaluestoanarray它打印出这样的东西:Array([0]=>hello[1]=>there[2]=>this[3]=>is[

php - Symfony2 的 Doctrine 不会为我创建一对多结构

我有两张table。第一个表是users,第二个是datas。Datas有useridx列,它与user的idx不同。(主唯一键)。这些是表结构:表用户CREATETABLEpublic.users(idxbigintNOTNULL,"name"varchar(250)DEFAULTNULL::charactervarying,surnamevarchar(250)DEFAULTNULL::charactervarying,isactivebooleanNOTNULLDEFAULTfalse,/*Keys*/CONSTRAINTusers_pkeyPRIMARYKEY(idx),CON

php - Laravel Eloquent 多对多如何

我正在尝试学习Laravel,现在我正在试验Eloquent。我有以下情况,我现在无法解决:假设我正在创建一个网上商店,所以我有产品(产品1、产品2等):+-------------+------------------+------+-----+---------------------+----------------+|Field|Type|Null|Key|Default|Extra|+-------------+------------------+------+-----+---------------------+----------------+|id|int(10)u

php - 在 Laravel 中一对多删除相关模型

这可能吗?在我阅读的每个教程中,都没有关于删除的内容,只有选择和插入相关模型。这是我的问题:我有三层嵌套。我有类(class)Package、Level、Lesson和Phase,它们的模型如下。第一个-包:classPackageextendsEloquent{protected$table='packages';public$timestamps=false;publicfunctionlevels(){return$this->hasMany('Level','package_id');}等级:classLevelextendsEloquent{protected$table='

javascript - 仅适用于一对一,其中一对多,webrtc

我正在为视频通话开发一个session风格的应用程序(多对多)this风格。代码在GitHub上可用,但我没有太多node.js经验,因此我决定使用PHP创建自己的服务器。我使用WebSockets创建了服务器。这很简单——它接收消息并将它们转发给所有其他连接的客户端(即,不是发送消息的客户端)。仅此而已-仅此而已;仅此而已。但我的问题是这种架构不允许客户端与一个以上的人连接,即,当客户端尝试与第三人连接时,额外的流会失败。客户端只能一对一连接。我不知道错误是在JavaScript中还是我需要改进服务器。我该怎么做才能连接到所有加入的客户?查看我的代码:HTMLJavaScriptva

php - Laravel 5.1 同一模型上的多个多对多关系

我看到在Laravel的ORM中遇到了以下问题:场景:所有用户都有一个监视列表,监视列表包含其他用户。我似乎无法让这些关系正常工作,因为它们是周期性的,到目前为止我有以下几点:classUserWatchlistextendsModel{protected$table='UserWatchlist';publicfunctionOwner(){return$this->belongsTo('App\User');}publicfunctionWatchedUsers(){return$this->hasMany('App\User');}}Schema::create('UserWat

php - Laravel 4 多对多更新

我遇到了一个问题,但找不到解决方案,这让我很烦。我有两张表,一张叫做contacts,另一张叫做phonebooks,它们与第三张名为*contacts_phonebooks*的表相关联,这是一个多-对多关系总结如下:联系人:id(pk)电话簿:id(pk)contacts_phonebooks:contactid(fk),phonebooksid(fk)非常简单明了,而且有效。我正在使用Laravel4和EloquentORM,当我必须获取它、插入它和删除它时一切正常,但是当我需要更新联系人时,我惨遭失败。我有一个表单,其中包含许多代表所有电话簿的复选框(每个复选框都有phonebo

php - 具有多对一关系的单表继承 (STI)

我对Doctrine很陌生,所以欢迎任何一般性建议。我正在努力实现以下目标:一个页面可以同时包含视频和照片。两者都是媒体和共享属性,所以我认为单表继承是有意义的。以下是我的设置的相关部分:页面/***@ORM\Entity*/classPage{/***@ORM\Id*@ORM\GeneratedValue*@ORM\Column(type="integer")*/protected$id;/***@ORM\OneToMany(targetEntity="Media",mappedBy="page",cascade={"persist"})*@varArrayCollection|Me

php - Laravel - 在多对多关系中渴望加载单个项目

在Laravel中,是否可以从BelongsToMany关系中预加载“第一个”项目?比如,从该关系中返回一个Item,而不是一个Collection?根据我尝试(和阅读)应用first()或limit('1')或任何其他约束不会返回单个项目 最佳答案 使用accessor.我猜你需要像latest、first之类的东西,或者集合中的此类单个项目,所以你可以这样做:publicfunctionitems(){return$this->belongsToMany(Item::class);}publicfunctiongetLatest

php - Laravel - 多对多

我有两个具有多对多关系的主表和一个数据透视表。Tables模型产品publicfunctionorders(){return$this->belongsToMany('App\Order');}模型顺序publicfunctionproducts(){return$this->belongsToMany('App\Product','OrderDetails');}和$orders=Equipment::all();@foreach($ordersas$order)@foreach($order->productsas$product){!!$product->name!!}//itw