如何解决使用多态关系在Laravel中进行Laravel查询函数find
我是Laravel的新手,对使用多态关系进行Laravel SQL查询有一些疑问
情况是: 我的SQL中有两个不同的表。 一个表“ estates”包含一个清单及其参数 另一个表是“ type_categories”,其中包含类型类别列表 每个遗产都可以与许多类型类别相关,并且每个类型类别可以具有许多遗产(因此我使用多对多关系)。 它们通过第三张表“
相关联因此,我需要执行一个查询,该查询将查找与类别相关的所有资产,但是我的用户可以选择多个类别,而不仅仅是一个。
我尝试使用功能find(1)->estates;
,该功能作为参数具有类型类别的ID,我试图找到与之相关的遗产。它可以正常工作,但是问题是,我的用户需要为多个类别和函数找到一个属性,但是在我们具有多态关系的情况下,函数查找仅对一个参数起作用,而对我来说不需要多个参数。>
是否有某种方法可以在函数find()中使用多个参数,并且还可以使用多态? 当然,还有其他功能...
然后我向您展示我的代码。
房地产模型外观:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class Estate extends Model
{
protected $fillable = ['title','slug','estate_text','created_by','modified_by'];
public function categories() {
return $this->morphToMany('App\TypeCategory','categoryable');
}
}
类型类别模型的外观:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class TypeCategory extends Model
{
protected $fillable = ['title','parent_id','modified_by'];
public function estates() {
return $this->morphedByMany('App\Estate','categoryable');
}
}
最后,我尝试选择遗产模型的遗产控制器看起来:
use Illuminate\Http\Request;
use App\Estate;
use App\TypeCategory;
class EstateController extends Controller {
public function searchEstate() {
$estates = TypeCategory::find(1)->estates;
return view('main',[
'estates' => $estates
] );
}
}
解决方法
我不确定这是否是您的问题。 试试这个:
$estates = Estate::whereHas('categories',function ($query) {
$query->whereIn('slug',['xxx','yyy','zzz']);
})->get();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。