【发布时间】:2021-08-14 15:52:13
【问题描述】:
我正在尝试通过多个表实现搜索。该项目是一个在线商店,有 3 个不同的表格,产品、类别和品牌。我只能搜索 Products 表,但似乎无法从我的刀片文件中获取相同的搜索字段来搜索类别或品牌并返回相关产品的结果。 我的 Blade 搜索输入
<form action="{{ url('/search-products') }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<div class="row" style="display: flex;">
<input class="typeahead form-control form-control-lg" type="text" name="product" id="product" placeholder="Search item to buy here..." style="width: 220px;">  
<button type="submit" class="btn btn-primary">
<i class="ti-search"></i>
</div>
</div>
</form>
我的控制器中的搜索功能
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Redirect;
use Image;
use App\Category;
use App\Brands;
use App\Product;
use DB;
class ProductController extends Controller
{
public function searchProducts(Request $request) {
$product = $request->input('product');
$categories = Category::with('categories')->where(['parent_id' => 0])->get();
$productsAll = Product::query()->where('product_name', 'LIKE', "%{$product}%")
->orWhere('state', 'LIKE', "%{$product}%")
->orWhere('lga', 'LIKE', "%{$product}%")
->orWhere('category_id', 'LIKE', "%{$product}%")->where('status', 1)->get();
$breadcrumb = "<a href='/'>Home</a> / ".$product;
return view('pages.results')->with(compact('categories', 'productsAll', 'product', 'breadcrumb'));
}
}
我的产品模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Auth;
use Session;
use DB;
class Product extends Model
{
protected $with = ['category'];
public function category()
{
return $this->hasMany('App\Category', 'id');
}
}
我的类别模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
public function products(){
return $this->hasMany('App\Product','id');
}
}
我的品牌模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Brands extends Model
{
//
}
【问题讨论】: