Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel Searchable属于_Php_Laravel - Fatal编程技术网

Php Laravel Searchable属于

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.

我正在使用nicolaslopezj提供的可搜索包,我正在尝试建立一个属于的关系,但是我遇到了一些问题

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
相关的代码,我将尝试解决它并编辑我的答案。虽然我确实认为答案,回答了你最初的问题,那就是关系错误,但我很高兴看到!!