Только начинаю изучение ООП PHP и столкнулся с небольшой проблемой.
Есть несколько таблиц Data, Constant, Categorie и один запрос к этим таблицам (для простоты я сократил запрос).
SELECT * FROM `'. data::getTableName() . '`,`' .constant::getTableName().'`,`'. categorie::getTableName().'` WHERE data.b_const=constant.id AND data.id_cat=categorie.id;
Для каждой таблицы, создал три похожих модели со своими полями таблиц.
namespace MyProject\Models\Constants;
use MyProject\Models\ActiveRecordEntity;
class Constant extends ActiveRecordEntity
{
protected $id;
protected $const1;
public function getConst1(): string
{
return $this->const1;
}
protected static function getTableName(): string
{
return 'constant';
}
}
В ActiveRecordEntity находится сам запрос.
Получаю следующий результат var_dump:
0 =>
object(MyProject\Models\Datas\Data)[6]
protected 'proc' => string '200' (length=3)
protected 'bPrim' => string '' (length=0)
....
public 'id' => string '15' (length=2)
public 'idData' => string '2' (length=1)
То есть я могу вывести результат через функции модель Data "getIdData()", а остальное через обращение непосредственно к имени поля таблицы БД оставшихся таблиц.
Подскажите пожалуйста, как правильно реализуются такие запросы в ООП PHP. Вернее как сделать так, чтобы модели узнали друг о друге. Раньше я имел дело только с чистым PHP.