我正在使用Laravel并试图从一个枢轴成员的外国关系中获取信息。 ERD如下。我建立了多对多的关系,以便我可以通过$ property->限制来获取财产限制,反之亦然。我正在努力的是当我获取此信息时如何添加限制类型描述。
$ property-> restriction 为我提供了type_id
array(
'id' => '1',
'description' => 'Fish only',
'restriction_types_id' => '1',
'pivot' => array(
'property_id' => '17',
'restriction_id' => '1'
)
)
但是我希望使用 restriction_type description 代替其ID。
array(
'id' => '1',
'description' => 'Fish only',
'restriction_type' => 'Animals',
'pivot' => array(
'property_id' => '17',
'restriction_id' => '1'
)
)
我的数据库表
╔═════════════╗ ╔════════════════════╗ ╔════════════════════╗
║ property ║ ║property_restriction║ ║restriction ║
╟─────────────╢ ╟────────────────────╢ ╟────────────────────╢
║id ║——————║property_id ║ ┌──║restriction_id ║
║description ║ ║restriction_id ║───┘ ║desctiption ║
╚═════════════╝ ╚════════════════════╝ ┌──║restriction_type_id ║
│ ╚════════════════════╝
│
│
╔═══════════════════╗ │
║restriction_type ║ │
╟───────────────────╢ │
║id ║────┘
║description ║
╚═══════════════════╝
答案 0 :(得分:0)
我相信您当前尝试访问数据的方式是通过动态属性。也许可以输入$property->restriction->restriction_type
。
您也可以尝试以下列方式之一加载它:
$property->with('restriction','restriction.restriction_type')->get();
或
$property
->with('restriction')
->with('restriction.restriction_type')
->get();
如果这些方法都不起作用,我会研究Laravel的急切加载和动态属性,看看是否有某些东西需要在你们的关系中被改变。