定制 azirius/hasmeta 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

azirius/hasmeta

最新稳定版本:v0.1.3

Composer 安装命令:

composer require azirius/hasmeta

包简介

Access model meta data as if it was a property on your model

README 文档

README

A Laravel trait to access model meta data as if it was a property on your model

Latest Stable Version Total Downloads Latest Unstable Version License

Installation

Run composer require jaybizzle/hasmeta 0.1.* or add "jaybizzle/hasmeta": "0.1.*" to your composer.json file

In the Model that you want to utilise HasMeta add the following properties

	use Jaybizzle\Hasmeta\HasMetaTrait;

	protected $meta_model       = 'ModelName'; // the name of your meta data model
	protected $meta_foreign_key = 'user_id'; // the foreign key of your main model
	protected $meta_primary_key = 'meta_id'; // the primary key of you meta data model
	protected $meta_key_name    = 'dataName'; // the column name that stores your meta data key name
	protected $meta_value_name  = 'dataValue'; // the column name that stores your meta data value

Real World Example

Nothing like a simple example to explain things

###Setup

users table

id email password
1 john@somewhere.com ADpQeKh$2y$10$0dh/BerzTrEOBhu4SR3w05
2 sam@somewhere.com pQeKhrzTrEOBhu$2y$10$0dh/BeAD4SR3w05
3 neil@somewhere.com ADpQeKhrzTrEOBhu4SR3w05$2y$10$0dh/Be
4 ben@somewhere.com BeADpQeKhrzTrEO$2y$10$0dh/Bhu4SR3w05
5 mark@somewhere.com DpQeKhrzTrEOBhu4SR3w05$2y$10$0dh/BeA

users_meta table

id user_id meta_name meta_value
1 1 first_name John
2 1 surname Roberts
3 1 age 20
4 1 gender Male
5 2 first_name Steven
6 2 surname Watson
7 2 age 35
8 2 gender Male
9 3 first_name Sam
10 3 surname Faddy
11 3 age 30
12 3 gender Female
13 4 first_name Ben
14 4 surname Prokop
15 4 age 32
16 4 gender Male
17 5 first_name Jo
18 5 surname Blair
19 5 age 31
20 5 gender Female

User.php model

class User extends Eloquent {

	use Jaybizzle\Hasmeta\HasMetaTrait;

	protected $meta_model       = 'UserMeta';
	protected $meta_foreign_key = 'user_id';
	protected $meta_primary_key = 'id';
	protected $meta_key_name    = 'meta_name';
	protected $meta_value_name  = 'meta_value';


	/**
	 * The database table used by the model.
	 *
	 * @var string
	 */
	protected $table = 'users';

	/**
	 * The primary key on the table
	 *
	 * @var string
	 */
	protected $primaryKey = 'id';
	
	// ...
}

UserMeta.php model

class UserMeta extends Eloquent {

	/**
	 * The database table used by the model.
	 *
	 * @var string
	 */
	protected $table = 'users_meta';

	/**
	 * The primary key on the table
	 *
	 * @var string
	 */
	protected $primaryKey = 'id';

	// ...
}

###Usage

Now we can simply do this for getting meta data...

$user = User::find(1);
echo $user->gender; // Will output 'Male'

We can save meta data easily too...

$user = User::find(1);
$user->gender = 'Female';
$user->save();

Delete meta...

$user = User::find(1);
$user->gender = null;
$user->save();

New meta...

$user = User::find(1);
$user->anything_you_want = 'some lovely value';
$user->save();

统计信息

  • 总下载量: 21
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-07-28