【发布时间】:2016-07-17 13:46:50
【问题描述】:
我的应用用户、销售和计划中有 3 个模型,当我为每个客户呈现销售时(由于存储),我只获得与该销售相关的其他用户和模型的 ID(如客户经理、所有者、计划) ,现在我正在尝试使用刀片内部的这些 ID 来获取基于 ID 和模型的名称或其他行。这是显示功能:
public function show($id) {
$user = User::find($id);
$sales = Sale::where('customer_id', '=', $id)->get();
return view('profiles.customer', ['user' => $user, 'sales' => $sales]);
}
在刀片中,我获得了所有这些销售,例如:
@foreach ($sales as $sale)
<li>
<i class="fa fa-home bg-blue"></i>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> {{$sale->created_at->format('g:ia, M jS Y')}}</span>
<h3 class="timeline-header"><a href="#">{{$user->name}}</a> became a customer</h3>
<div class="timeline-body">
<p>Date: {{$sale->sold_date}}</p>
<p>Price: {{$sale->sale_price}}</p>
</div>
</div>
</li>
@endforeach
所以在每条记录中我都有“account_manager_id”、“agent_id”、“owner_id”、“plan_id”。
目前我通过在 Sale 模型类中添加公共静态函数(这是给用户的,对 Plan 模型也有相同的功能)解决了这个问题:
public static function getUser($id) {
return User::where('id', $id)->first();
}
我在 Blade 中就是这样使用它的:
Account manager: {{$sale->getUser($sale->account_mgr_id)->name}}
这是最安全、最好的方法吗?还是我在这里忽略了什么?
【问题讨论】:
-
您是如何在销售模型中管理关系的?
-
嗯,这可能是个问题,我没有建立关系,不知道如何获取它,因为每个销售模型记录都有 5 个不同的用户和一个计划模型 ID。 .
标签: laravel laravel-5.2 laravel-blade