Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
Laravel 在相同的表之间建立一对多和一对一的关系_Laravel_Relationship - Fatal编程技术网

Laravel 在相同的表之间建立一对多和一对一的关系

Laravel 在相同的表之间建立一对多和一对一的关系,laravel,relationship,Laravel,Relationship,我有两张桌子: 游客, 旅行。以及相应的旅游、旅游模式 我成功地建立了他们之间的多对多关系。当我 $tour->tourists()->attach($tourist); 它创造了一项新的旅游记录。旅游id、旅游id、创建地点、更新地点。它显示了哪些游客会参加特定的旅游 现在我需要创建另一个实体:买方。买主是支付旅游费用的游客之一。只有一个属于旅游团的游客可以成为买家 我在两种模型中都建立了一对一的关系: <?php } 在旅游模式中也一样,只是我将“App\tourism

我有两张桌子: 游客, 旅行。以及相应的旅游、旅游模式

我成功地建立了他们之间的多对多关系。当我

$tour->tourists()->attach($tourist);
它创造了一项新的旅游记录。旅游id、旅游id、创建地点、更新地点。它显示了哪些游客会参加特定的旅游

现在我需要创建另一个实体:买方。买主是支付旅游费用的游客之一。只有一个属于旅游团的游客可以成为买家

我在两种模型中都建立了一对一的关系:

<?php
}

在旅游模式中也一样,只是我将“App\tourism”改为“App\tourism”:

public function buyer() {

return $this->hasOne('App\Tour')
->withTimestamps();

但当我这样做的时候:

$tour->buyer()->($tourist) 
如果$tour和$Touriser包含数据库中的相应记录,则我可以得到:

BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::withTimestamps()'
我有一种感觉,我做得完全不对。有人能指出我应该前进的方向吗


谢谢。

withTimestamps是一种仅用于BelongToMany的方法,因为它更新了透视表的created_at/updated_at字段。哈桑不会用这种方法。

谢谢你,德文!但我认为我的总体方法是错误的。你会在我的位置上做什么?很难从你写的东西中看出你的数据库是如何为买家建立的。我会针对你的另一个问题重写一个新问题,但要更加清晰和简洁。因此,帮助未来用户与帮助当前用户一样重要,因此,好的问题/答案应该集中在一个清晰简洁的问题上。
BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::withTimestamps()'