Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉维5.4关系_Php_Laravel - Fatal编程技术网

Php 拉维5.4关系

Php 拉维5.4关系,php,laravel,Php,Laravel,您好,我需要显示用户表名项目中的项目 我有三种型号 用户模型: public function userItem() { return $this->hasMany('App\UserItem', 'item_id'); } public function userItem() { return $this->hasMany('App\UserItem', 'user_items', 'user_id', 'item_id'); } UserItem模型: pu

您好,我需要显示用户表名
项目中的项目

我有三种型号

用户模型:

public function userItem()
{
    return $this->hasMany('App\UserItem', 'item_id');
}
public function userItem()
{
     return $this->hasMany('App\UserItem', 'user_items', 'user_id', 'item_id');
}
UserItem模型:

public function user()
{
    return $this->belongsTo('App\User', 'user_id');
}
要使此关系成功,需要向
项目
模型写入什么内容。因此,我可以显示
项目表中的项目

如果我现在这样做:

我从数据库中的
user\u项
表中获取信息

当我执行此操作时,
@foreach(Auth::user()->userItem作为$item)
我得到以下结果:

未找到列:中的1054未知列“用户\u项。用户\u项” “where子句”


你表现出一种多对多的关系,但却在使用一对多关系的方法。对于多对多关系,请在模型中使用以下代码:

//用户模型:

public function userItem()
{
    return $this->hasMany('App\UserItem', 'item_id');
}
public function userItem()
{
     return $this->hasMany('App\UserItem', 'user_items', 'user_id', 'item_id');
}
//userItem模型:

public function user()
{
     return $this->hasMany('App\User', 'user_items', 'item_id', 'user_id');
}
对于多对多关系,两个模型都需要hasMany方法

有关hasMany方法参数的信息以及关于多对多关系的其他信息,请阅读关于多对多关系的文档:


希望这有帮助。

我想你应该使用多对多关系

您有2个模型用户和项目

和3个表:-用户-项目-用户项目

用户模型应如下所示:

public function userItem()
{
    return $this->belongsToMany('App\Item','user_items','user_id','item_id');
}
项目型号:

public function user()
{
    return $this->belongsToMany('App\User','user_items','item_id','user_id');
}
您需要一个名为
user\u items

您不需要定义userItem模型,您可以删除此模型中的关系

在刀片服务器中,请使用以下代码:

@foreach(Auth::user()->userItem as $item)

所以你有一个用户表,一个项目表,并且想要创建一个类似于库存的东西,对吗?是的。我在我的
user\u items
表中得到了
user\u id
item\u id
,问题是如何从收集这些信息的
user\u items
表中显示
items
user\u id
item\u id
?你说:我有3个模型。但是您编写的2个模型有问题,第三个模型是什么?嘿,当我这样做时,
@foreach(Auth::user()->userItem as$item)
我得到这个:
列未找到:1054未知列“user\u items.user\u items”在“where子句”中。