Как получить данные из нескольких таблиц отношения в MySQL - PullRequest
0 голосов
/ 05 декабря 2018

Я работаю в проекте в php Laravel 5.5.У меня есть таблицы tbl_borrower, tbl_property_owner, tbl_property, tbl_property_borrower.Структура таблицы такова.tbl_property_owner has one or many properties and property are assigned to the borrower in tbl_property_borrower. The borrower can also have many properties. В отчете я должен показать информацию о заемщике, информацию о владельце, информацию о недвижимости, которая назначена.отчет должен быть таким.In report, there should be borrower details and property details and assigned property details are shown on the basis of tbl_property_borrower Я пытался установить отношение «один ко многим» в модели, подобной этой.

public function properties()
{
    return $this->hasMany('App\Property','property_owner_id');
}

public function assigned_property()
{
    return $this->hasMany('App\PropertyBorrower','property_id');
}

Таким образом, я могу получить сведения о свойстве владельца собственности, но не могу получить значения, которые являютсяназначается заемщиком в соответствии с собственником имущества.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Есть два сценария в отношениях.1. На основании правильного преобразования имен просто указав название модели.

 Example :
         consider you have users table and you have another table like comments table. 
             Users Table fields = id, name
             Comments Table     = id, comments, user_id.

Здесь вы выполнили правильное преобразование имен, например user_id, поэтому вам нужно только дать название модели, как показано ниже,

return $this->hasOne('App\Comment'); or return $this->hasOne(Comment::class)

Другое имя внешнего ключа.

Пример:

рассмотрим, что у вас есть таблица пользователей, а у вас есть другая таблица, например таблица комментариев.

  Users Table fields = id, name
     Comments Table     = id, comments, author_id.

Здесь внешний ключ отличается от имени таблицы, поэтому необходимо указать ключ в функции отношения.

return $this->hasOne('App\Comment', 'author_id', 'id');

Надеюсь, это поможет.

0 голосов
/ 05 декабря 2018

Попробуйте как показано ниже

use App\Property;
use App\PropertyBorrower;

public function properties()
{
        return $this->hasMany(Property::class, 'property_owner_id', 'id');
}


public function assigned_property()
{
    return $this->hasMany(PropertyBorrower::class, 'property_id', 'id');
}

В вашей модели заемщика

public function borrower()
{
    return $this->belongsTo(PropertyBorrower::class, 'id', 'borrower_id');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...