Laravel 4/5搜索表单像
我有一个搜索表单和函数,全部完成。只是要问,是否可以在Eloquent这样的查询中进行:Laravel 4/5搜索表单像
SELECT * FROM players WHERE name LIKE '%".$name."%'
要显示一些可能的匹配名称。我现在的控制器功能:
public function search()
{
$name = Input::get('character');
$searchResult = Player::where('name', '=', $name)->paginate(1);
return View::make('search.search')
->with('name', $name)
->with('searchResult', $searchResult);
}
而我的观点:
<form id="custom-search-form" class="form-search form-horizontal pull-right" action="{{ URL::action('[email protected]') }}" method="get">
<div class="input-append spancustom">
<input type="text" class="search-query" name="character" placeholder="Character/guild name">
<button type="submit" class="btn"><i class="icon-search"></i></button>
</div>
</form>
在此先感谢。
嗯,是的,只需设置like
作为您的比较运算符,并发送字符串%
的。类似这样的:
Player::where('name', 'LIKE', "%$name%")->get();
如果您需要频繁使用LIKE,那么您可以简化问题。
public function scopeLike($query, $field, $value){
return $query->where($field, 'LIKE', "%$value%");
}
,那么你可以这样的方式使用此方法:如自定义()方法可以在继承了雄辩的模型来创建
User::like('name', 'Tomas')->get();
我会在哪里放置函数'scopeLike'?哪个档案? –
@JoshPetitt,你需要把这个方法放入你的模型中,框架会自动地看到它。 (这里是文档 - https://laravel.com/docs/5.4/eloquent#query-scopes查看本地范围) – Kison
随着字符串的报价:
$value = DB::connection()->getPdo()->quote('%' . strtolower($value) . '%');
$query->whereRaw('LOWER(your_table.your_column) LIKE ' . $value);
public function get_student($match){
return Student::where('name', 'like', $match .'%');
}
试试上面的
谢谢,内华达州呃真的用LIKE查询做了一些事情。我怎么能得到匹配的结果?我已经有一个搜索表单设置,但不知道如何查看匹配结果?你能帮我一下吗? http://paste.laravel.com/K9O –
您可以查看如何在[Laravel文档](http://laravel.com/docs/pagination#usage)上显示分页结果。另外,我建议你缩进你的视图代码,它几乎不可读。 – rmobis
这也帮助我与我的jquery自动完成的情况下。 –