متد actionView که فراخوانیها رو انجام میده:
class PostsController extends Controller {
public function actionView($params) {
$post = (new Posts())->findByPk($params['id']);
$post->view++;
$post->save();
$this->render( 'view', compact( 'post' ) );
}
}
و کلاس Model که وقتی فراخوانی متد connect رو کامنت میگیریم ارور میده:
class Model {
protected $con;
public function __construct() {
$this->connect();
}
private function connect() {
$config = Loader::load( 'Configs' );
$this->con = new mysqli( $config->dbHost, $config->dbUser, $config->dbPassword, $config->dbName );
if ( ! $this->con->error ) {
$this->con->query( "SET NAMES 'utf8'" );
$this->con->set_charset( 'utf8' );
echo 'Ok';
}
}
public function query( $query ) {
// $this->connect();
return $this->con->query( $query );
}
public function escape( $param ) {
// $this->connect();
if ( $param == null )
return 'NULL';
return $this->con->real_escape_string( $param );
}
public function insertId() {
// $this->connect();
return $this->con->insert_id();
}
public function arrayQuery( $query ) {
// $this->connect();
$result = [];
$values = $this->query( $query );
if ( $values && $values->num_rows > 0 ) {
while ($value = $values->fetch_assoc()) {
$result[] = $value;
}
}
return $result;
}
}
البته کدهای کانکت رو داخل construct نوشتم بازم خطا داد.
تصویر خطا:
اشیائی که از این کلاس ساخته میشه در همون findByPk و update هست(متدهای ActiveRecord که برای اکشن ویو لازم هستن).
اتفاقی که میفته اینه از کدهای کانکت به دیتابیس که در construct نوشته میشن یا از اونجا فراخوانی میشن، چشم پوشی میشه.