要查看的Laravel模型 - 未定义的变量

时间:2014-07-14 16:18:43

标签: laravel laravel-4

我确定我错过了一些令人眼花缭乱的明显但却无法看到分区名称出现在我的视野中。

它不断返回未定义的变量:division_name

DIVISON.PHP(型号)

<?php 

class Division extends \Eloquent {

    protected $table = 'divisions';

     public function scopeGetDivisionName($query, $slug)
    {
        return $query->select('division_name')
            ->join('division_industry_job', 'division_industry_job.division_id', '=', 'divisions.id')
            ->join('industryjobs', 'division_industry_job.industry_job_id', '=', 'industryjobs.id')
            ->where('industryjobs.slug', '=', $slug);

    }


}

JOBCONTROLLER.PHP(控制器)

public function showdivisionjob($slug)
    {

    $job = IndustryJob::where("slug", "=", $slug)->first();

    $division_name = Division::getDivisionName($slug)->firstOrFail();

    return View::make('job')->with('job', $job, $division_name);

    }

JOB.BLADE.PHP(查看)

{{$division_name->division_name}}

{{$job->job_title}}

2 个答案:

答案 0 :(得分:2)

您没有正确地将变量传递给您的视图。

// This won't work
return View::make('job')->with('job', $job, $division_name);

应该是

return View::make('job')->with('job', $job)
                        ->with('division_name', $division_name);

或者

return View::make('job', array(
    'job' => $job, 
    'division_name' => $division_name
));

答案 1 :(得分:1)

您还可以使用compact方法将变量传递给视图:

public function showdivisionjob($slug)
 {
  $job = IndustryJob::where("slug", "=", $slug)->first();
  $division_name = Division::getDivisionName($slug)->firstOrFail();
  return View::make('job', compact('job', 'division_name'));

 }