laravel - 无法在 Laravel 中的两个表之间建立关系
问题描述
我想在 laravel 中创建 lising 和属性表之间的关系,因为我使用以下代码来建立它们之间的关系,但我视图中的数据不是来自两个表。我收到以下错误:
调用模型 [App\Models\AdListing] 上的未定义关系 [adListAttributes]。
这里列表可以有尽可能多的属性关联,属性可以关联到许多列表
ad_listings:
id
title
name
date
ad_list_attributes table :
id
listing_id
name
namespace App\Models;
use Eloquent;
use Illuminate\Database\Eloquent\Model;
class AdListAttribute extends Model
{
protected $table = "ad_list_attributes";
public function Listings()
{
return $this->belongsToMany('AdListing', 'id', 'listing_id');
}
}
namespace App\Models;
use Eloquent;
use Illuminate\Database\Eloquent\Model;
class AdListing extends Model
{
protected $table = "ad_listings";
public function Attributes()
{
return $this->belongsToMany('AdListAttribute', 'listing_id', 'id');
}
}
解决方案
问题是您belongsToMany
在两个模型中都使用。这将导致问题。
在AdListAttribute
模型中,
public function listing_information()
{
return $this->belongsTo('App\AdListing', 'id', 'listing_id');
}
在AdListing
模型中,
public function adlisting_attributes()
{
return $this->hasMany('App\AdListAttribute', 'listing_id', 'id');
}
您可以使用以下方法获得结果,
$response = AdListing::get();
if($response->adlisting_attributes)
{
foreach($response->adlisting_attributes as $attribute)
{
echo $attribute->name;
}
}
推荐阅读
- c# - 我应该如何更改我的旧应用程序,以便它始终将文件和数据存储在 AppData 中?
- json - 用于查询的 JSON 到 OData 字符串
- python - 从 HTML 表格中提取类标签以及单元格值
- svg - Vue绑定SVG变换旋转
- powershell - 用于排除禁用用户的主文件夹 powershell 脚本
- java - 我怎样才能使 1 / 3 = 0.3 ?日食,Java
- javascript - React fetch('http://localhost:3000/profile/:id')
- go - 使用 centos7 作为 Jaeger 的基础镜像
- javascript - 使用 PHP ECHO 填充时,DataTables 子行无法正确显示
- bash - Powershell 中的 BCP 命令