题
我从 SO 和 Laravel 论坛中获取了一些答案来拼凑结果。但是,我有一个 Undefined variable error
我不知道为什么。
控制器
public function getJobs()
{
$query = DB::table('jobs');
if (isset($jcategory))
$query->where('category', '=', $jcategory);
$result = $query->get();
return View::make('jobsearch.search', $result);
}
视图(已缩写为空间)
<form action="{{ action('JobsearchController@getJobs') }}" method="post">
<div class="row">
<div class="large-8 columns">
<input type="text" name="realm" placeholder="Keywords/Skills" />
</div>
<div class="large-4 columns">
<select name="jcategory">
<option value="">Select Category</option>
<option value="jc1">Accounting</option>
...
</select>
</div>
<div class="large-4 columns">
<input type="submit" value="Search" style="width:100%; padding-top: .5rem;
padding-bottom: .5rem;" class="button border-btn" />
</div>
</div>
</form>
@foreach ($result as $job)
<p>{{ $job->id }}</p>
@endforeach
一旦我完成这个小测试,我将添加其余的 isset
进入 $query
. 。我想要实现的是,视图将加载数据库中的所有作业,并且如果用户更改类别(例如)并提交视图,它将使用查询中反映的更改重新加载页面。
我目前得到一个 Undefined variable: result
视图上的错误。我已经尝试过 foreach
以不同的方式,但我感觉控制器没有传递任何东西。
解决方案
您通过了 $result
变量的方式错误。尝试这个:
return View::make('jobsearch.search')->with('result', $result);
不隶属于 StackOverflow