cortex/foundation

此包已被废弃,不再维护。没有建议的替代包。

Rinvex Cortex 模块化应用架构的核心基础。

安装数: 7,997

依赖: 20

建议者: 0

安全性: 0

星标: 7

关注者: 5

分支: 5

类型:cortex-module

v8.3.6 2024-07-22 02:57 UTC

README

Rinvex Cortex 模块化应用架构的核心基础。

Packagist Scrutinizer Code Quality Travis StyleCI License

安装和用法

此包不应单独安装,它是 rinvex/cortex 所需的,并且需要一个满足 Rinvex Cortex 特殊架构的新 Laravel 应用实例。

此包尚未编写文档,但您可以在自己的责任下使用它。

即将编写文档..!

支持助手

intend()

intend 方法返回重定向响应

intend([
    'route' => 'route.name.here',
    'withErrors' => ['error.message.id' => 'A custom error message'],
]);

注意:此助手接受 redirect 方法作为输入键,例如 withErrorswithbackroute 等。

unique_with 验证规则:用法

像任何 Validator 规则一样使用它

$rules = [
    '<field1>' => 'unique_with:<table>,<field2>[,<field3>,...,<ignore_rowid>]',
];

参阅 Laravel 的验证文档

指定数据库中的不同列名

如果您的输入字段名与相应的数据库列名不同,您可以显式指定列名。

例如,您的输入包含一个名为 'last_name' 的字段,但数据库中的列名为 'sur_name'

$rules = [
    'first_name' => 'unique_with:users, middle_name, last_name = sur_name',
];

忽略现有行(在更新时很有用)

您还可以指定一个要忽略的行 ID(在更新时解决唯一约束很有用)

这将忽略 ID 为 2 的行

$rules = [
    'first_name' => 'required|unique_with:users,last_name,2',
    'last_name' => 'required',
];

要指定 ID 的自定义列名,请按以下方式传递

$rules = [
    'first_name' => 'required|unique_with:users,last_name,2 = custom_id_column',
    'last_name' => 'required',
];

如果您的 ID 不是数字,您可以将此告诉验证器

$rules = [
    'first_name' => 'required|unique_with:users,last_name,ignore:abc123',
    'last_name' => 'required',
];

添加附加条款(例如,在使用软删除时)

您还可以设置附加条款。例如,如果您的模型使用软删除,则可以使用以下代码选择所有现有行,但标记为已删除

$rules = [
    'first_name' => 'required|unique_with:users,last_name,deleted_at,2 = custom_id_column',
    'last_name' => 'required',
];

软删除注意事项

在 Laravel 5(在 5.5 上测试)中,如果在表单请求类中执行验证,则跳过字段 deleted_at,因为它未在请求中发送。要解决此问题,请将 'deleted_at' => null 添加到请求类中的验证参数中,例如。

protected function validationData()
{
    return array_merge($this->request->all(), [
        'deleted_at' => null
    ]);
}

指定要使用的特定数据库连接

如果我们有一个名为 some-database 的连接,我们可以强制使用此连接(而不是默认连接),如下所示

$rules = [
    'first_name' => 'unique_with:some-database.users, middle_name, last_name',
];

例如,假设您有一个数据库中的 users 表和类似这样的 User 模型

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function(Blueprint $table) {
            $table->increments('id');

            $table->timestamps();

            $table->string('first_name');
            $table->string('last_name');

            $table->unique(['first_name', 'last_name']);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }
}
<?php

class User extends Eloquent { }

现在您可以使用类似以下内容来验证特定的 first_namelast_name 组合

Route::post('test', function() {
    $rules = [
        'first_name' => 'required|unique_with:users,last_name',
        'last_name' => 'required',
    ];

    $validator = Validator::make(Input::all(), $rules);

    if($validator->fails()) {
        return Redirect::back()->withErrors($validator);
    }

    $user = new User;
    $user->first_name = Input::get('first_name');
    $user->last_name = Input::get('last_name');
    $user->save();

    return Redirect::route('home')->with('success', 'User created!');
});

变更日志

有关项目的完整历史记录,请参阅 变更日志

支持

以下支持渠道随时可供您使用

贡献 & 协议

感谢您考虑为此项目做出贡献!贡献指南可以在 CONTRIBUTING.md 中找到。

欢迎提交错误报告、功能请求和拉取请求。

安全漏洞

如果您在此项目中发现安全漏洞,请发送电子邮件至 help@rinvex.com。所有安全漏洞都将得到及时解决。

关于Rinvex

Rinvex是一家专注于为中小企业提供集成企业解决方案的软件解决方案初创公司,自2016年6月在埃及亚历山大成立以来。我们相信,我们的动力——价值、触达和影响——是我们区别于其他公司的特点,并通过软件的力量释放我们哲学的无限可能性。我们喜欢称之为“与生活同步的创新”。这就是我们如何为推动人类进步尽一份力的方式。

许可证

本软件根据MIT许可证(MIT)发布。

© 2016-2022 Rinvex LLC,部分权利保留。