Vue.js中的Laravel类访问

Pan*_*kaj 11 laravel vue.js laravel-blade laravel-5.6 laravel-5.7

我有以下类,我定义了我的最小/最大长度值:

class MinMaxValuesUser {
    const Min_UserName = 6;
    const Max_UserName = 30;
}
Run Code Online (Sandbox Code Playgroud)

以下是请求类中的规则,其中使用最小最大值而不是硬编码.

public function messages() {
    return [

        "Min_UserName.min" =>  trans("Profile.Min_UserName"),
        "Max_UserName.max" =>  trans("Profile.Max_UserName")
    ];
}

public function rules() {

    return [
        "UserName" =>  "min:" . MinMaxValuesUser::Min_UserName 
                          . "|max:" . MinMaxValuesUser::Max_UserName
    ];
}
Run Code Online (Sandbox Code Playgroud)

以下是我使用相同服务器端类的JQuery Validate代码.

$('form#frmProfile').validate({
    rules: {
        UserName: {
            minlength: {!! \App\MinMaxValues\MinMaxValuesUser::Min_UserName !!},
            maxlength: {!! \App\MinMaxValues\MinMaxValuesUser::Max_UserName !!}
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

问题

当我编写大量代码时,我已经开始使用已经嵌入Laravel的Vue.js了.这里的一切都很棒

但正如我们所知,vue.js是一个前端框架并在客户端加载,因此无法使用上述服务器端类来保持最大最大数量集中.

请建议如何摆脱这个问题.

whe*_*ker 5

将您的用户配置放在/config/user.php文件中

<?php

return [
  'Min_UserName' => 4,
  'Max_UserName' => 10
];
Run Code Online (Sandbox Code Playgroud)

你现在可以像这样在你的PHP中的任何地方访问它

config('user.Min_userName'); // specific value
config('user'); // array of both values
Run Code Online (Sandbox Code Playgroud)

您可以将它放入您的视图文件中,如下所示:

@json(config('user'))
Run Code Online (Sandbox Code Playgroud)

如果您的视图组件是在刀片文件中定义的,则可以将其放入数据定义中:

'user_requirements': @json(config('user'))
Run Code Online (Sandbox Code Playgroud)

如果您的vue组件被进一步隐藏在js文件中,那么您将需要在刀片模板中定义一个js变量(可能是您的布局),就像这样

let MyUserReqs = @json('user');
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用js变量在vue组件中定义它MyUserReqs.