sinara贾博pour1998 / alpha-helper
提供laravel中的辅助函数和验证器。
Requires
- php: ^7.1.3|8.*
- laravel/framework: 7.*|8.*|9.*|10.*|11.*
README
快速链接
安装
composer require sinarajabpour1998/alpha-helper
发布配置文件
php artisan vendor:publish --tag=alpha-helper
包中存在的辅助函数和外观
1. integerToken($length = 5) : Generate integer token or code
2. stringToken($length = 16, $characters = '2345679acdefghjkmnpqrstuvwxyz') : Generate string token or code
3. digitsToEastern($number) : Covert a Weatern number(English) or digits to Eastern number(Persian or Arabic)
4. easternToDigits($number) : Covert a Eastern number(Persion, Arabic) to Eastern number(English)
5. isActive($key, $activeClassName = 'active') : Check the route name(string) or route names(array) is avtive or no for css classes
6. prepareInteger(input: string or integer) : removes `,` from integer (can be used in request for prices)
7. prepareSlug(slug, title, model) : generate clean slug from title and checks slug unique in specific model
8. encryptString(string data) : encrypts data using Crypt and returns encrypted data
9. decryptString(string encryptedString) : decrypts data using Crypt and returns decrypted data
10. makeHash(string) : make hash using sha512 from string
11. getSettingsKey(string key) : get settings specific key, returns a value, you must have a settings model with key-value structure
12. isMobile(string) : check if string is a valid mobile number
..
辅助函数使用
## With Facade format:
AlphaHelper::integerToken(length: 10);
AlphaHelper::stringToken(length: 32, characters: '2345679acdefghjkmnpqrstuvwxyz');
AlphaHelper::digitsToEastern(number: 1375);
AlphaHelper::easternToDigits(number: ۱۳۷۵);
AlphaHelper::isActive(key: ['posts.index', 'posts.create', 'posts.edit'], activeClassName: 'acive');
AlphaHelper::prepareInteger(input: string or integer);
AlphaHelper::prepareSlug(slug, title, model);
AlphaHelper::encryptString(data [string type]);
AlphaHelper::decryptString(data [string type]);
AlphaHelper::makeHash(data [string type]);
AlphaHelper::getSettingsKey(key [string type]);
AlphaHelper::isMobile(string);
## Call a helper function:
integerToken(length: 10)
stringToken(length: 32, characters: '2345679acdefghjkmnpqrstuvwxyz');
digitsToEastern(number: 1375);
easternToDigits(number: ۱۲۳۴۵);
isActive(key: ['posts.index', 'posts.create', 'posts.edit'], activeClassName: 'acive');
prepareInteger(input: string or integer);
prepareSlug(slug, title, model);
encryptString(data [string type]);
decryptString(data [string type]);
makeHash(data [string type]);
getSettingsKey(string key);
isMobile(string);
包中存在的验证器
- 国家代码(کد ملی)
- IBAN(شماره شبا)
- 借记卡(شماره کارت بانکی)
- 邮政编码(کد پستی)
- Shenase Meli(شناسه ملی)
- 手机(موبایل)
- 电话(تلفن ثابت)
- 唯一动态(تشخیص یکتایی دو ستونه)
- 波斯字母(الفبای فارسی)
- 波斯数字(اعداد فارسی)
- 无特殊字符(بدون کاراکتر خاص)
- 地址(آدرس)
验证器使用
national_code
验证伊朗国家代码的规则 (如何计算)
return [
'code' => 'required|national_code'
];
For national_code with exeptions code or valid codes for foreign national codes
First step for use this parameters is migrate, php artisan migrate, and save your exeptions in this table
but if you want to use another table you can set your table and column
return [
'code' => 'required|national_code:national_code_exceptions' // This is default table that contains exeption codes
-- OR --
'code' => 'required|national_code:national_code_exceptions,code' // Second parameter is column of exeption table
];
-- OR --
return [
'code' => ['required', 'national_code']
];
-- OR --
$validatedData = $request->validate([
'code' => 'national_code',
]);
iban
验证IBAN(国际银行账户号码)的规则,在伊朗称为Sheba。 (如何计算)
return [
'account' => 'iban'
];
-- OR --
Add `false` optional parameter after `iban`, If IBAN doesn't begin with `IR`, so the validator will add `IR` as default to the account number:
return [
'account' => 'iban:false'
];
-- OR --
If you want to validate non Iranian IBAN, add the 2 letters of country code after `false` optional parameter:
return [
'account' => 'iban:false,DE'
];
debit_card
验证伊朗借记卡的规则。 (如何计算)
return [
'code' => 'required|debit_card'
];
-- OR --
return [
'code' => ['required', 'debit_card']
];
-- OR --
$validatedData = $request->validate([
'code' => 'debit_card',
]);
-- OR --
You can add an optional parameter if you want to validate a card from a specific bank:
return [
'code' => 'required|debit_card:bmi'
];
List of the bank codes:
- bmi (بانک ملی)
- banksepah (بانک سپه)
- edbi (بانک توصعه صادرات)
- bim (بانک صنعت و معدن)
- bki (بانک کشاورزی)
- bank-maskan (بانک مسکن)
- postbank (پست بانک ایران)
- ttbank (بانک توسعه تعاون)
- enbank (بانک اقتصاد نوین)
- parsian-bank (بانک پارسیان)
- bpi (بانک پاسارگاد)
- karafarinbank (بانک کارآفرین)
- sb24 (بانک سامان)
- sinabank (بانک سینا)
- sbank (بانک سرمایه)
- shahr-bank (بانک شهر)
- bank-day (بانک دی)
- bsi (بانک صادرات)
- bankmellat (بانک ملت)
- tejaratbank (بانک تجارت)
- refah-bank (بانک رفاه)
- ansarbank (بانک انصار)
- mebank (بانک مهر اقتصاد)
postal_code
return [
'code' => 'required|postal_code'
];
--OR--
return [
'code' => ['required, 'postal_code']
];
--OR--
$validatedData = $request->validate([
'code' => 'postal_code',
]);
shenase_meli
验证伊朗Shenase Meli的规则 (如何计算)
return [
'code' => 'required|shenase_meli'
];
--OR--
return [
'code' => ['required, 'shenase_meli']
];
--OR--
$validatedData = $request->validate([
'code' => 'shenase_meli',
]);
mobile
return [
'mobile' => 'required|mobile'
];
--OR--
return [
'mobile' => ['required, 'mobile']
];
--OR--
$validatedData = $request->validate([
'mobile' => 'mobile',
]);
用户名(有效字符:英文字母、数字和 _)
return [
'username' => 'required|username'
];
--OR--
return [
'username' => ['required, 'username']
];
--OR--
$validatedData = $request->validate([
'username' => 'username',
]);
phone
return [
'phone' => 'required|phone'
];
--OR--
return [
'phone' => ['required, 'phone']
];
--OR--
$validatedData = $request->validate([
'phone' => 'phone',
]);
unique_dynamic (table_name, target_column, extra_column, extra_column_value, ignore_column, ignore_column_value)
return [
// Without ignore for create user, 4 parameters
// If we want to check a username is unique in users table when type of this useranme equal student
// If username = 'v.ashourzadeh' and type = 'student' you can't create username = 'v.ashourzadeh' but create username = 'v.ashourzadeh' if type = 'teacher'
'username' => 'required|unique_dynamic:users,username,type,student'
// With ignore for edit user, 6 parameters
// If we want to check a username is unique in users table and ignore this for special id, for example id = 5
// If username = 'v.ashourzadeh' and type = 'student' you can set username = 'v.ashourzadeh' when id = 5
'username' => 'required|unique_dynamic:users,username,type,student,id,5'
];
--OR--
return [
// Without ignore for create user, 4 parameters
'username' => ['required, 'unique_dynamic:users,username,type,student']
// With ignore for edit user, 6 parameter
'username' => ['required, 'unique_dynamic:users,username,type,student,id,5']
];
--OR--
$validatedData = $request->validate([
// Without ignore for create user, 4 parameters
'username' => 'unique_dynamic:users,username,type,student',
// With ignore for edit user, 6 parameter
'username' => 'unique_dynamic:users,username,type,student,id,5',
]);
persian_alphabetic
return [
'code' => 'required|persian_alphabetic'
];
--OR--
return [
'code' => ['required, 'persian_alphabetic']
];
--OR--
$validatedData = $request->validate([
'code' => 'persian_alphabetic',
]);
persian_number
return [
'code' => 'required|persian_number'
];
--OR--
return [
'code' => ['required, 'persian_number']
];
--OR--
$validatedData = $request->validate([
'code' => 'persian_number',
]);
no_special_chars
return [
'name' => 'required|no_special_chars'
];
--OR--
return [
'name' => ['required, 'no_special_chars']
];
--OR--
$validatedData = $request->validate([
'name' => 'no_special_chars',
]);
address
return [
'address' => 'required|address'
];
--OR--
return [
'address' => ['required, 'address']
];
--OR--
$validatedData = $request->validate([
'address' => 'address',
]);
分类使用
此包为以下表结构提供分类处理,使用 Category
模型
categories => id, slug, title, category_type, description, parent_id, creator_id
categorizables => category_id, categorizable_id, categorizable_type
在分类创建blade中的使用
<x-category-options page="create" type="serviceCategory"></x-category-options>
-
此标签生成选择选项,因此您可以在select或select2标签中使用它。
-
type:在表结构中使用的分类类型,例如postCategory
-
page:包含当前标签的blade页面
在分类编辑blade中的使用
<x-category-options page="edit" type="serviceCategory" parent="{{ $category->parent_id }}" category="{{ $category->id }}"></x-category-options>
-
parent:包含当前分类parent_id
-
category:包含当前category_id
在包含分类的特定创建blade中的使用
<x-category-checkboxes page="create" type="serviceCategory"></x-category-checkboxes>
-
此标签生成复选框,因此您可以在任何div标签中使用它。
-
type:在表结构中使用的分类类型,例如postCategory
-
page:包含当前标签的blade页面
在包含分类的特定编辑blade中的使用
<x-category-checkboxes type="serviceCategory" page="edit" checked="{{ $service->categories->pluck('id') }}"></x-category-checkboxes>
- checked:包含与主对象同步的分类的数组,例如services->categories
需求
- PHP v7.0或更高版本
- Laravel v7.0或更高版本