Вам понадобится наследование. Попробуйте следующее:
// _ClassA.h
class _ClassA
{
friend class ClassA;
private:
//all your private methods here, accessible only from ClassA and _ClassA.
}
// ClassA.h
class ClassA: _ClassA
{
friend class ClassB;
private:
//all_your_methods
}
Таким образом, у вас есть: ClassB
- единственный, который сможет использовать ClassA
. ClassB
не могут получить доступ к _ClassA
методам, которые являются частными.
Предположим, что ваша модель называется Note.php
. Предположим, в вашей таблице notes
есть внешний ключ note_status_id
и note_type_id
. Добавьте связь в основную модель Note.php
.
public function status()
{
return $this->belongsTo(NoteStatus::class);
}
public function notes()
{
return $this->belongsTo(NoteType::class);
}
Вы можете получить данные с такими отношениями
Note::with('status','notes')
->get()
Для получения дополнительной информации о взаимоотношениях Laravel Laravel Eloquent: Отношения
Настройка отношений между вашими моделями была бы наилучшим способом, так как вам не нужно заново изобретать колесо каждый раз, когда вам нужно вызвать соединение. Это сохранит ваш код в долгосрочной перспективе.
Подробнее об этом здесь:
Laravel Eloquent Relationships
Если вы хотите сделать это вручную, то это будет так же, как если бы вы запустили запрос в сыром SQL:
$note = Note::join('NoteType','Note.NoteType_id','NoteType.id')
->select('Note.*','NoteType.Name as NoteName')
->first();
Теперь вы можете получить всю информацию из $ note
Note id = $note->id
NoteType Name = $note->NoteName
Очевидно, измените это в своем коде, но это должно помочь построить свои знания достаточно, чтобы решить это.
Более подробную информацию можно найти здесь: