【发布时间】:2014-01-06 20:57:35
【问题描述】:
我是 laravel 新手!!!并且努力找出如何创建搜索并返回结果。
这是我在 gist https://gist.github.com/anonymous/8289692 上的所有代码
我已经把从表单到路由、控制器和模型的所有内容都放在了要点中!
/* Route */
Route::get('/search/{q}', 'HomeController@search');
/* Form from web page */
<form class="navbar-form navbar-left" role="search" action="/search/" method="post">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search Programmes" name="1">
<span class="input-group-btn">
<input type="submit" class="btn btn-primary" value="Search">
</span>
</div><!-- /input-group -->
</form>
/* Controller */
public function search($q)
{
$q = Input::get('term');
$searchTerms = explode(' ', $q);
$query = DB::tables('wc_program');
foreach($searchTerms as $term)
{
$query->where('JobRef', 'LIKE', '%'. $term .'%');
}
$results = $query->get();
}
/* Model (just in case) */
class Search extends Eloquent {
protected $table = 'wc_program';
public $timestamps = false;
}
【问题讨论】:
-
你的代码有什么问题
-
您应该将代码放在这里,而不是放在外部资源上(来吧,这是 40 行代码)。无论如何,有什么问题?帮助什么?不管用?它应该做什么/它做什么?
-
返回如下错误:Symfony\Component\HttpKernel\Exception\NotFoundHttpException
-
您在使用自己的命名空间吗?如果是这样,请确保您相应地调整路线,例如laravel.com/docs/controllers。您还应该尝试将参数设为可选,因为在用户通过表单提交之前,该参数不会出现在 URL 中。 Route::get('/search/{q?}', 'HomeController@search');
-
不使用自己的命名空间,不,所以我猜这是根据错误消息引起探测的路线,所以我会尝试你的路线建议@Dave