Хорошо, поэтому я не знаю, можно ли это сделать, но мне нужно объединить результаты предложений 2 Where из 2 таблиц в одну переменную.
Пока у меня есть эта работа для запроса одногоtable:
$allCompanies = Products::where('category_id', $id->id)->groupBy('company_id')->get();
И это для другого:
$companies = Company::where('visible', 0)->get();
Но есть ли способ получить их в той же строке запроса?Примерно так я могу получить, где идентификатор совпадает со столбцом идентификатора в одной таблице И где видимый равен 0 в другой?
Я пробовал это:
$allCompanies = Products::with('company', function($q){
$q->where('visible', 0);
})->where('category_id', $id->id)
->groupBy('company_id')->get();
, но получил эту ошибку:
mb_strpos() expects parameter 1 to be string, object given
Модель компании:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Company extends Model
{
public function products()
{
return $this->hasMany('App\Products');
}
}
Модель продуктов
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Products extends Model
{
protected $fillable = [
'name',
'description',
'image',
'size',
'price',
'stock',
'company_id',
'category_id'
];
public function category()
{
return $this->belongsTo('App\Categories', 'category_id');
}
public function company()
{
return $this->belongsTo('App\Company', 'company_id');
}
}