在 laravel 中搜索食品
Search Food Items in laravel
我的视图中有一个搜索框,我想从数据库中搜索食物。
我对搜索框的看法是:
<div class="field" id="searchform">
<input type="text" id="searchterm" placeholder="e.g mutton
karahi,pizza..." />
<button type="button" id="search"
onclick="window.location='http://localhost:8000/search'">Find Food!</button>
</div>
我的食物 table 有如下字段:
- Food_id
- 食物名称
- 食物描述
- 食物图片
- 价格
现在我想通过 name.How 搜索我的食物 我能做到吗?请帮助 me.I 是 laravel 的新手,我正在使用 laravel 5.2。
据推测,您的 table 名称是 foods
,您可以在控制器中使用 Eloquent 或 DB facade 来做到这一点。
public function search(){
$foodName = Input::get('food_name'');
$foods = Food::where('FoodName', $foodName)->get();
return $foods;
}
这是最简单的版本。希望对你有帮助。
在 Laravel
中搜索
- 创建你的模型
正如您提到的,您有一个 table 说 food
我们将在您的 app
文件夹
中生成一个模型 Food.php
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Food extends Model {
use SoftDeletes;
protected $table = 'food';
protected $fillable = ['id','name','description','image'];
protected $dates = ['deleted_at'];
}
创建一个搜索控制器
php artisan make:controller SearchController
Inside Controller 编写逻辑以根据食物名称检索您的模型记录
public function search(Request $request){
$foods = Food::where('name','%LIKE%',$request->input('q'))->get();
return view('search')->with(['foods'=>$foods]);
}
</pre>
我们现在正在返回模态以供查看。您可以在控制器或视图中使用 dd($foods)
来检查结果
在您的搜索表单视图中,对 SearchController 进行操作
{{Form::open(array('action' => 'SearchController@search','method'=>'post','name'=>'mini_search','id'=>'mini_search','role'=>'form')) }}</p>
<pre><code> <div class="field" >
<input type="text" id="searchterm" placeholder="e.g mutton
karahi,pizza..." name="q" />
<button type="submit" id="search" >Find Food!</button>
</div>
{{Form::close()}}
最后,我们还需要一个视图来显示我们的结果
所以创建一个文件 search.blade.php 并显示结果。
https://laravel.com/docs/5.2/views#passing-data-to-views
<ul>
@foreach($foods as $food)
<li>{{$food->name}}</li>
@endforeach
</ul></pre>
我的视图中有一个搜索框,我想从数据库中搜索食物。 我对搜索框的看法是:
<div class="field" id="searchform">
<input type="text" id="searchterm" placeholder="e.g mutton
karahi,pizza..." />
<button type="button" id="search"
onclick="window.location='http://localhost:8000/search'">Find Food!</button>
</div>
我的食物 table 有如下字段:
- Food_id
- 食物名称
- 食物描述
- 食物图片
- 价格
现在我想通过 name.How 搜索我的食物 我能做到吗?请帮助 me.I 是 laravel 的新手,我正在使用 laravel 5.2。
据推测,您的 table 名称是 foods
,您可以在控制器中使用 Eloquent 或 DB facade 来做到这一点。
public function search(){
$foodName = Input::get('food_name'');
$foods = Food::where('FoodName', $foodName)->get();
return $foods;
}
这是最简单的版本。希望对你有帮助。
在 Laravel
中搜索- 创建你的模型
正如您提到的,您有一个 table 说 food
我们将在您的 app
文件夹
Food.php
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Food extends Model {
use SoftDeletes;
protected $table = 'food';
protected $fillable = ['id','name','description','image'];
protected $dates = ['deleted_at'];
}
创建一个搜索控制器
php artisan make:controller SearchController
Inside Controller 编写逻辑以根据食物名称检索您的模型记录
public function search(Request $request){ $foods = Food::where('name','%LIKE%',$request->input('q'))->get(); return view('search')->with(['foods'=>$foods]); } </pre>
我们现在正在返回模态以供查看。您可以在控制器或视图中使用
dd($foods)
来检查结果在您的搜索表单视图中,对 SearchController 进行操作
{{Form::open(array('action' => 'SearchController@search','method'=>'post','name'=>'mini_search','id'=>'mini_search','role'=>'form')) }}</p> <pre><code> <div class="field" > <input type="text" id="searchterm" placeholder="e.g mutton karahi,pizza..." name="q" /> <button type="submit" id="search" >Find Food!</button> </div> {{Form::close()}}
最后,我们还需要一个视图来显示我们的结果 所以创建一个文件 search.blade.php 并显示结果。 https://laravel.com/docs/5.2/views#passing-data-to-views
<ul>
@foreach($foods as $food)
<li>{{$food->name}}</li>
@endforeach
</ul></pre>