我想知道这是否可行。我有3个型号。 用户 TenantPreferances PropertyAdverts
我试图找出是否可以这样查询。
查找所有租户,其首选项与当前登录的用户属性相匹配。
3个数据库就像这样
用户模型
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('userType');
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
PropertyAdverts
Schema::create('property_adverts', function (Blueprint $table) {
$table->increments('id');
$table->string("photo");
$table->string('address');
$table->string('county');
$table->string('town');
$table->string('type');
$table->string('rent');
$table->string('date');
$table->string('bedrooms');
$table->string('bathrooms');
$table->string('furnished');
$table->longText('description');
$table->integer('user_id'); //Landlord ID
$table->timestamps();
});
租客优惠
Schema::create('tenant_preferances', function (Blueprint $table) {
$table->increments('id');
$table->string('county');
$table->string('type');
$table->string('rent');
$table->string('bedrooms');
$table->string('bathrooms');
$table->boolean('status')->default('0');
$table->integer('user_id'); //Tenant ID
$table->timestamps();
});
答案 0 :(得分:0)
是的,这是可能的。你需要深入研究relations。然后,您可以创建一个函数来定义模型上的关系:
function propertyAdverts() {
return $this->hasMany(PropertyAdverts::class);
}
您可以使用$user->propertyAdverts
从用户模型访问关系。如果你想加载它们,你可以这样做:
User::with('propertyAdverts')->find(3);
但请注意,Laravel默认不会定期加入。它首先提取所有用户,然后使用propertyAdverts
语句使用单个查询提取所有in
。