xruff/basedbmodel

Nette 数据库工具

v2.0.2 2019-08-30 19:03 UTC

This package is auto-updated.

Last update: 2024-09-19 03:52:54 UTC


README

要求

包需要 PHP 5.6 或更高版本

安装

安装 XRuff/BaseDbModel 的最佳方式是使用 Composer

$ composer require xruff/basedbmodel

简短文档

UsersRepository 用于处理数据库表 users。你应该在表名后使用 Repository 后缀。

namespace MyModels;

use XRuff\App\Model\BaseDbModel;

class UsersRepository extends BaseDbModel
{
	// no implementation needed
}

如果出于某种原因你不能在类名中使用表名或单词 Repository,请遵循以下步骤

namespace MyModels;

use Nette\Database\Context;
use XRuff\App\Model\BaseDbModel;

class MyAnyNameRepo extends BaseDbModel
{
	public function __construct(Context $db)
	{
		parent::__construct($db, 'my_db_able_name');
	}
}

在 presenter(或其他地方)中使用模型

use Nette;
use MyModels\UsersRepository;

class MyUsersPresenter extends Nette\Application\UI\Presenter
{
	/** @var UsersRepository $usersModel */
	public $usersModel;

	public function __construct(
		UsersRepository $usersModel
	) {
		$this->usersModel = $usersModel;
	}

	public function actionDefault()
	{
		// returns Nette\Database\Table\ActiveRow
		// with first user with name John in table users
		$this->usersModel->getOneBy(['name' => 'John']);

		// or
		// set name as Joe for user with id 5 in table users
		// and returns Nette\Database\Table\ActiveRow with updated values
		$this->usersModel->save(['id' => 5, 'name' => 'Joe']);

		// or add new user with name Jane
		// and returns Nette\Database\Table\ActiveRow with just added row
		$this->usersModel->save(['name' => 'Jane']);

		// or some another method inherited from BaseDbModel
	}
}

仓库 https://github.com/XRuff/BaseDbModel