omnicode / lara-tools
laravel 有用的工具
0.1.0
2018-01-30 16:31 UTC
Requires
- cakephp/utility: ~3.3
- laravel/framework: ~5.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0|~5.0
README
内容
LaraUtil
LaraUtil 包含以下实用方法
hasTable
检查指定的表是否存在 - 缓存结果,返回 true 或 false
LaraUtil::hasTable('users')
hasColumn
检查指定的表是否有指定的列 - 缓存查询,返回 true 或 false
LaraUtil::hasColumn('users', 'first_name')
getFullColumns
接受列列表和表名,如果不存在则将表名添加到列中,例如。
$columns = ['id', 'first_name', 'users.last_name'];
$columns = LaraUtil::getFullColumns($columns, 'users');
// the final array will look like
['users.id', 'users.first_name', 'users.last_name']
hashPassword
使用 bcrypt 对给定的字符串进行散列,但是之后使用应用程序端密钥对密码散列进行加密。它还应用 sha256
方法(在散列之前)来消除 bcrypt 的长度限制 - 更多
$hashedAndEcryptedPassword = LaraUtil::hashPassword('some password');
字符串将如下所示 eyJpdiI6IlU4amxZaVNCc2xjemlkZUNWRFVhb3c9PSIsInZhbHVlIjoidWs0bmRcL1JFMHk1dUE4Yk9kWFo3b2VSZEJuYXk5NngwUXMxMDBieTdvOVZ6d1JWQ3RObVE3RGZmcHlqYnV1Ymw5OFVKelRlb2JsSllcL21FVlk4WklVNHkzcnl5Ym90T0tJVzNZalRyUmI2dz0iLCJtYWMiOiI2MDE3ZTQ1NGE0NDcwNTY2Yjc3NzAyZmZlOWU4ZDBkMTE4ODNhNTY0YTE2ZmYzNDNkNDA0ZGI2ZWRhZjhjMTA3In0=
verifyPassword
验证上述 hashPassword
方法散列的密码 - 返回 true 或 false
$passwordMatch = verifyPassword('plan text password', $hashedAndEcryptedPassword);
ModelExtrasTrait
ModelExtrasTrait 是一个用于模型的 trait - 提供以下方法
saveAssociated
saveAssociated
方法是一个包装方法,允许在单个事务中保存 BelongsToMany
和 HasMany
相关模型,例如,假设我们需要保存一个带有其相关分类的产品,我们会使用
Product::saveAssociated($data, ['associated' => 'categories']);
的 $data
应该是一个数组,如下所示
$data = ['name', 'price', 'categories_ids' => [1, 3, 7]]