Laravel 5:在视图中调用模型

问题描述 投票:0回答:2

在我的控制器中,我的控制器中有我的模型集合:

$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
php laravel laravel-5
2个回答
0
投票

您可以将变量

$current_project
从控制器传递到您的视图中,如下所示:

$current_project = \App\Project::findOrFail($j['id']);

return view('view_name', ['current_project' => $current_project]);

然后在您的视图中访问它。


-1
投票

是的,你可以像这样在你的视图中调用模型

    @php
    use App\Category;
    use App\Exchange;
    @endphp

这里类别和交换是我的模型,你可以像这样使用,创建该模型的对象 $exchange = 新的 Exchange(); 现在您可以在刀片中的任何位置访问 $exchange 变量

© www.soinside.com 2019 - 2024. All rights reserved.