如何在Laravel中为嵌套输入设置自定义属性标签

SLo*_*ris 8 validation laravel laravel-5.1

我正在尝试在错误消息中获取自定义标签.我的输入是嵌套的,我可以使用点表示法(例如POLICY.HOLDER.NAME)验证它们.它们必须是嵌套的,并且所有大写都与db结构匹配,因此我可以轻松地进行大量分配.

在使用相同的符号'attributes' => ['POLICY.HOLDER.NAME' => 'Policy Holder']resources/lang/en/validation.php没有产生任何结果.

我只是想让它们与我在表单中设置的标签相匹配.

app/Http/Controllers/OfferController.php(只是有趣的部分)

public function postOffer(OfferRequest $request) { //
    $post_data = $request->all();
    if (isset($post_data['POLICY'])) {
        // code to get data from $_POST and assign to models
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序/ HTTP /请求/ OfferRequest.php

<?php 
namespace App\Http\Requests;

use App\Http\Requests\Request, Auth;

class OfertaRequest extends Request
{

    public function authorize() {
        return Auth::check();
    }

    public function rules()
    {
        return [
            'POLICY.HOLDER.NAME' => 'required',
        ];
    }

    public function forbiddenResponse()
    {
        return Response::make('Permission denied foo!', 403);
    }

}
Run Code Online (Sandbox Code Playgroud)

资源/郎/ EN/validation.php

'attributes' => [
    'POLICY.HOLDER.NAME' => 'Some custom string here...',
],
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我尝试在自定义验证属性数组中添加输入名称但没有成功.这是将输入留空时得到的错误消息:

政策.霍尔德河 名称字段是必需的.

注意空格.我也尝试过,它没用.

San*_*ruz 8

将其明确声明为嵌套数组:

'attributes' => [
    'POLICY' => [
        'HOLDER' => [
            'NAME' => 'Some custom string here...',
        ]
    ]
],
Run Code Online (Sandbox Code Playgroud)

  • 我永远也不会想到,可以按预期工作。谢谢一群! (2认同)