У меня есть 3 модели в моем приложении Пользователи, продажи и планы, когда я делаю продажи для каждого клиента (из-за хранения), я получаю только идентификаторы для других пользователей и моделей связанные с этой продажей (например, менеджер учетных записей, владелец, план), теперь я пытаюсь использовать внутреннее лезвие этого ID для получения имен или других строк на основе идентификатора и модели. Вот шоу функция:Как безопасно получить доступ к другим пользователям и другим записям модели внутри шаблона Blade
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».
В настоящее время я это решается путем добавления общественности статической функции (это для пользователей, имеют такую же функцию в плане модели, а) в продажу модели класса:
public static function getUser($id) {
return User::where('id', $id)->first();
}
И я использую его, как это Лезвие:
Account manager: {{$sale->getUser($sale->account_mgr_id)->name}}
Действительно ли это самый безопасный и лучший способ сделать это? Или что-то я здесь не замечаю?
Как вы управляли взаимоотношениями в модели продаж? –
Ну, это может быть проблемой, у меня нет настроенных отношений, не знаю, как это получить, поскольку каждая запись модели продаж имеет 5 разных пользователей и один идентификатор модели плана ... – Dino