Php 使用Eloquent中的active load从附表中选择一些(不是全部)字段
我有3个这样字段的表 一,。反馈Php 使用Eloquent中的active load从附表中选择一些(不是全部)字段,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我有3个这样字段的表 一,。反馈 身份证 客户识别码 区域id 得分 描述 创建于 更新地址 删除 二,。顾客 身份证 名字 创建于 更新地址 删除 三,。地区 身份证 名字 创建于 更新地址 删除 有这样的关系 一, 二, 我试着运行这个代码 $result = Feedback:: with(array('customer' => function($query) {$query->select(array('id','name'));})) ->with(
- 身份证
- 客户识别码
- 区域id
- 得分
- 描述
- 创建于
- 更新地址
- 删除
- 身份证
- 名字
- 创建于
- 更新地址
- 删除
- 身份证
- 名字
- 创建于
- 更新地址
- 删除
$result = Feedback::
with(array('customer' => function($query) {$query->select(array('id','name'));}))
->with(array('region' => function($query) {$query->select(array('id','name'));}))
->get(array('id','created_at'))
->toArray();
下一个数组返回给我:
Array
(
[0] => Array
(
[id] => 4
[created_at] => 2014-09-22 16:28:32
[customer] =>
[region] =>
)
)
正如我们所见,customer和region字段为空。然后我尝试用任何其他组合来修改我的代码,但并没有给我带来好的结果。只有当我在->get(array('id','created_at')
中运行此构造而不指定字段,并像->get()
一样将其留空时,我才能得到这样的结果:
Array
(
[0] => Array
(
[id] => 1
[customer_id] => 1
[region_id] => 1
[scores] => some_data
[description] => some_text
[created_at] => 2014-09-22 16:28:32
[updated_at] => 2014-09-22 13:28:57
[deleted_at] =>
[customer] => Array
(
[id] => 1
[name] => customer_name
)
[region] => Array
(
[id] => 1
[name] => region_name
)
)
)
但现在我从主表中获取所有字段,在这种情况下不需要这些字段
请帮我把这个结构写好。谢谢 这是给你们的解决方案-阅读,投票,玩得开心。谢谢你们,Jarek Tkaczyk!!!这个解决方案对我很有帮助:“您需要始终选择关系的父级主键和子级外键,否则Eloquent将无法匹配相关模型。”代码中的解决方案:->get(数组('id','created_at','customer_id','region_id'))
Array
(
[0] => Array
(
[id] => 4
[created_at] => 2014-09-22 16:28:32
[customer] =>
[region] =>
)
)
Array
(
[0] => Array
(
[id] => 1
[customer_id] => 1
[region_id] => 1
[scores] => some_data
[description] => some_text
[created_at] => 2014-09-22 16:28:32
[updated_at] => 2014-09-22 13:28:57
[deleted_at] =>
[customer] => Array
(
[id] => 1
[name] => customer_name
)
[region] => Array
(
[id] => 1
[name] => region_name
)
)
)