gpt4 book ai didi

php - 此集合实例上不存在属性 [business_url]

转载 作者:搜寻专家 更新时间:2023-10-31 20:58:24 24 4
gpt4 key购买 nike

我的业务可以有很多页面,我在这里定义我的模型:

class PageList extends Model
{
public function business()
{
return $this->hasMany('App\Business','business_id');
}
}

我的 Controller

public function pageListHere()
{
$list = PageList::all();
return view('page-list',compact('list'));
}

我的观点有每个循环

<td>{{optional($value->business)->business_url}}.spikesales.io/{{$value->page_url}}</td>

在我的关系中,如果我执行 hasOne('App\Business','business_id'); 它工作正常,但它只显示一个针对业务的页面,但我的数据库中有多个页面,并且一个企业可以有很多页面,如果写 hasMany('App\Business','business_id'); 它会显示错误 Property [business_url] does not exist on this collection instance

我想针对一项业务显示多个页面。非常感谢您的帮助!

最佳答案

我觉得你有点糊涂了。在您的模型中,您实际上定义了关系A page has many business,并且您告诉 businesses 表有一个列 business_id, Laravel 试图找到但找不到,导致错误。


hasMany 函数的工作方式如下:

// In the Post Model...
public function comments() {
return $this->hasMany('App\Comment', 'post_number');
}

这使得关系 A Post has many Comments 并且让 Laravel 假设 comments 表有 post_number


您想针对一项业务显示多个页面。因此,一个企业有很多页面要对其进行编码...

// In your BUSINESS model...
public function pages() {
// Notice that $this refers to the Business Model
return $this->hasMany('App\PageList', 'business_id');
}

您可以选择(但我认为您应该)省略 'business_id' 部分。默认情况下将安全地假定它。

并且关系的逆向,A Page belongs A business,将被编码为...

// In your PAGELIST model...
public function business() {
return $this->belongsTo('App\Business');
}

关于php - 此集合实例上不存在属性 [business_url],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50128763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com