bztang-admin/plugins/article/src/models/Manager.php

90 lines
2.5 KiB
PHP

<?php
namespace Yunshop\Article\models;
use app\common\models\BaseModel;
use app\common\models\Member;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Validation\Rule;
class Manager extends BaseModel
{
//切记关联时候别把密码关联出去!
public $table = "yz_plugin_article_manager";
protected $guarded = [''];
use SoftDeletes;
public static function getList($search)
{
$merModel = self::uniacid();
if (!empty($search['member'])) {
$merModel->join('mc_members', 'mc_members.uid', 'yz_plugin_article_manager.member_id')
->select(['yz_plugin_article_manager.*'])
->where(function ($q) use ($search){
$q->where('mc_members.uid', $search['member'])
->orWhere('mc_members.nickname', 'like', "%{$search['member']}%")
->orWhere('mc_members.realname', 'like', "%{$search['member']}%")
->orWhere('mc_members.mobile', 'like', "%{$search['member']}%");
});
}
if (!empty($search['username'])) {
$merModel->where('yz_plugin_article_manager.username', $search['username']);
}
$merModel->with(['member' => function ($query) {
$query->select('uid', 'nickname','realname', 'avatar', 'mobile');
}]);
$merModel->orderBy('yz_plugin_article_manager.created_at', 'desc');
return $merModel;
}
public function member()
{
return $this->belongsTo(Member::class, 'member_id', 'uid');
}
/**
* 定义字段名
*
* @return array
*/
public function atributeNames()
{
return [
'nickname' => '昵称',
'username' => '用户名',
'member_id' => '角色',
'password' => '密码',
'status' => '状态',
];
}
/**
* 字段规则
*
* @return array
*/
public function rules()
{
return [
'nickname' => ['required',
Rule::unique($this->table)->where('uniacid', \YunShop::app()->uniacid)->ignore($this->id)],
'username' => ['required',
Rule::unique($this->table)->where('uniacid', \YunShop::app()->uniacid)->ignore($this->id)],
'member_id' => ['required',
Rule::unique($this->table)->ignore($this->id)
],
'password' => 'required',
'status' => 'required'
];
}
}