在我的控制器中,我的控制器中有我的模型集合:
$ngo = Ngo::where('slug', $slug)->firstOrFail();
$projects = $ngo->projects()->get()->toArray();
$online_jobs = $ngo->jobs()->online()->get()->toArray();
$infield_jobs = $ngo->jobs()->inField()->get()->toArray();
$projects_missions = array_merge($projects, $online_jobs, $infield_jobs)
然后在我看来,我调用了一个循环:
@foreach ($projects_missions as $j)
<h5 class="sBlack">{{ $j['title'] }}</h5>
@if ($j['type'] == "donation_money")
@php $current_project = \App\Project::findOrFail($j['id']); @endphp
<div class="progress-bar"><span class="bar" style="width:{{ $current_project->goalPercentage }}%;"></span></div>
@elseif ($j['type'] == "field")
@php $current_job = \App\Job::findOrFail($j['id']); @endphp
<p class="info"> <img class="icon" src="{{ asset('assets/images/icons/' . implode( ",", $current_job->getRelatedCategoriesImage()))}}" />{{ implode( ", ", $current_job->getRelatedCategoriesTitle()) }}</p>
@endif
如您所见,我希望能够访问视图中的模型,以便调用函数。它是这样工作的,但我知道在我的视图中定义变量不是一个好的做法。 那么我该怎么做才能获得我的 $current_job 或 $current_project 模型而不像这样定义它:
@php $current_project = \App\Project::findOrFail($j['id']); @endphp
您可以将变量
$current_project
从控制器传递到您的视图中,如下所示:
$current_project = \App\Project::findOrFail($j['id']);
return view('view_name', ['current_project' => $current_project]);
然后在您的视图中访问它。
是的,你可以像这样在你的视图中调用模型
@php
use App\Category;
use App\Exchange;
@endphp
这里类别和交换是我的模型,你可以像这样使用,创建该模型的对象 $exchange = 新的 Exchange(); 现在您可以在刀片中的任何位置访问 $exchange 变量