【问题标题】:How can i multiple table combining with Laravel?我如何与 Laravel 结合使用多个表?
【发布时间】:2018-02-17 09:59:09
【问题描述】:

例如;

 $hall_templates = HallTemplate::where('hall_id' , $id)->orderBy('order' , 'ASC')->get();

输出:

 [{"id":16,"hall_id":3,"template_name":"Magazin Outlet","order":1,"width":12,"height":12},
  {"id":17,"hall_id":3,"template_name":"Merinos K\u00fclt\u00fcr Merkezi","order":2,"width":22,"height":12}]

例如下面的第二个表信息;

$armchair_number_count = HallTemplateArmChair::where('template_id' , 16)->get();

输出:

[{"id":1,"template_id":16,"armchair_no":"a1"}, 
 {"id":2,"template_id":16,"armchair_no":null}]

如何组合这两个表。 我想做输出:

array({"id":16,"hall_id":3,"template_name":"Magazin Outlet","order":1,"width":12,"height":12, "armchair_number_count",2},
{"id":17,"hall_id":3,"template_name":"Merinos K\u00fclt\u00fcr Merkezi","order":2,"width":22,"height":12, "armchair_number_count",0);

感谢您的帮助。

【问题讨论】:

  • 你为这两个模型定义了任何关系吗?
  • 我没有定义关系。

标签: php arrays laravel


【解决方案1】:

使用withCount() 方法:

HallTemplate::withCount('armchairNumber')->where('hall_id' , $id)->orderBy('order' , 'ASC')->get();

此方法将计算椅子数量并将armchair_number_count 属性添加到每个HallTemplate 对象。

要使其工作,请在 HallTemplate 模型中定义关系:

public function armchairNumber()
{
    return $this->hasMany(HallTemplateArmChair::class, 'template_id');
}

【讨论】:

  • "armchair_number_count":144(false)
  • "armchair_number_count":2(应该是)
  • @ufuk 这意味着你有 144 把椅子,template_id = $id
  • @ufuk 请仔细检查第 5 条评论中的所有代码。如果它仍然不起作用,请显示您现在尝试使用的完整代码。
  • 再次控制代码第 5 条注释。工作。你是超级开发者:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
相关资源
最近更新 更多