@Afatar

Изменить свойство родительского класса?

Приветствую коллеги! Пишу свой велосипед, типа MVС. Есть модель
<?php
namespace App\Models;
use PDO;
class Model{
	protected $dbname="shop";
	protected $dbuser="root";
	protected $dbpass="";
	protected $table='items';
	public $db;
	function __construct(){
		try {
				$this->db=new PDO("mysql:dbname=$this->dbname;dbhost=localhost;charset=utf8",$this->dbuser,$this->dbpass);
			}
		catch(PDOException $e) {  
			echo $e->getMessage();
			die();			
		}
	
	}
	
	 function all(){
		$db=$this->db;
		$model=$db->query("select * from $this->table");
		return $model;
	}
}

В контролере пишу
....
static function all(){
		$model=new Model;
		$item=$model->all();
		return View::render('show',['items'=>$item]);
	}
....

И далее в представлении отображаю. Все работает! Но я хочу сделать как в Laravel, т.е. все модели будут наследоваться от Model (и иметь ее методы, в моем случае all())
class items  extends Model {
}

Но проблема с именем таблицы. Каким образом, можно переопределить свойство $table класса Model из дочернего класса items, что бы подставлять имя таблицы в запросы?
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
DevMan
@DevMan
class items  extends Model {
    protected $table='newItem';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы