У меня есть 3 модели, как показано ниже:
Date
Property
PropertyDetail
и вот моя миграция для таблиц, которые я пишу по порядку
Дата:
public function up()
{
Schema::create('dates', function (Blueprint $table) {
$table->bigIncrements('id');
$table->dateTime('date');
$table->timestamps();
});
}
Недвижимость:
public function up()
{
Schema::create('properties', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('type');
$table->text('title');
$table->integer('base_capacity');
$table->timestamps();
});
и PropertyDetail:
public function up()
{
Schema::create('property_details', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('property_id');
$table->string('state');
$table->string('city');
$table->timestamps();
});
}
я пытался удалить ненужные поля из миграции, чтобы сохранить их в чистоте, поэтому вот мои 2 отношения между датой и собственностью
Datemodel:
public function properties() {
return $this->belongsToMany(Property::class);
}
и правильная модель:
public function dates(){
return $this->belongsToMany(Date::class);
}
public function features(){
return $this->hasMany(Feature::class);
}
Хорошо, теперь, наконец, в моем контроллере я хочу сделать это:
$search = Date::with('properties')
->where('date',$someday)->get()
->and some how here i want to select the city from the property detail table
;
так вот в чем моя проблема, теперь я могу легко получить доступ к свойствам и показать их имя, но из этого соотношения, как я могу получить доступ к отношению функций и выбрать город оттуда, если я буду использовать соединения или что-то там, я надеюсь, что я достаточно ясно понял, что что я хочу сделать