Php Laravel Searchable属于
我正在使用nicolaslopezj提供的可搜索包,我正在尝试建立一个属于的关系,但是我遇到了一些问题Php Laravel Searchable属于,php,laravel,Php,Laravel,我正在使用nicolaslopezj提供的可搜索包,我正在尝试建立一个属于的关系,但是我遇到了一些问题 protected $searchable = [ /** * Columns and their priority in search results. * Columns with higher values are more important. * Columns with equal values have equal importance.
protected $searchable = [
/**
* Columns and their priority in search results.
* Columns with higher values are more important.
* Columns with equal values have equal importance.
*
* @var array
*/
'columns' => [
'products.title' => 10,
'products.description' => 5,
],
'joins' => [
"brand" => ['products.brand_id', 'brands.id']
],
];
public function brand()
{
return $this->belongsTo(Brand::class);
}
这里的问题是,当数据库表被称为“brands”时,它试图获取数据库表“brand”。然而,如果我将此更改为brands,我会与laravel发生关系错误。所以我真的不知道该怎么办。文档也没有很好地解释它。希望能得到一些帮助,谢谢 考虑到评论中讨论的内容,您的原始问题的解决方案是更新您的
品牌
模型,方法是将受保护的$table
变量设置为'Brand'
,然后调整上述参数以反映这一点
这将解决关系错误的原始问题,并保持代码的一致性,正如您在注释中提到的那样
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Brand extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'brand';
}
考虑到评论中讨论的内容,原始问题的解决方案是更新您的
品牌
模型,方法是将受保护的$table
变量设置为品牌
,然后调整上述参数以反映这一点
这将解决关系错误的原始问题,并保持代码的一致性,正如您在注释中提到的那样
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Brand extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'brand';
}
只是想澄清一下,将
“brand”=>[“products.brand\u id”,“brands.id']
更改为“brands”=>[“products.brand\u id”,“brands.id']
并将函数brand()
更改为brands()
并不能解决这一问题。@Chowysalmon已经消除了错误,然而,当我尝试搜索一个品牌时,它不起作用。另外,我不想把它称为品牌,因为它是一个单独的元素,也会破坏我的其他代码。如果您能够提供与您正在搜索的$query
相关的代码,我将尝试解决它并编辑我的答案。虽然我确实认为答案,回答了你最初的问题,那就是关系错误,但我很高兴看到!!只是想澄清一下,将“brand”=>[“products.brand\u id”,“brands.id']
更改为“brands”=>[“products.brand\u id”,“brands.id']
并将函数brand()
更改为brands()
并不能解决这一问题。@Chowysalmon已经消除了错误,然而,当我尝试搜索一个品牌时,它不起作用。另外,我不想把它称为品牌,因为它是一个单独的元素,也会破坏我的其他代码。如果您能够提供与您正在搜索的$query
相关的代码,我将尝试解决它并编辑我的答案。虽然我确实认为答案,回答了你最初的问题,那就是关系错误,但我很高兴看到!!