エラーメッセージでカスタムラベルを取得しようとしています。私の入力は入れ子になっており、ドット表記法(例えばPOLICY.HOLDER.NAME
)を使って入力を検証できます。それらは入れ子にする必要があり、すべての大文字はdb構造に一致するので、簡単に大量に割り当てることができます。Laravelでネストされた入力のカスタム属性ラベルを設定する方法
'attributes' => ['POLICY.HOLDER.NAME' => 'Policy Holder']
の同じ表記をresources/lang/en/validation.php
に使用しても結果は得られなかった。
私はフォームに設定したラベルに一致させるようにしています。
アプリ/ HTTP /コントローラ/ 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
}
}
アプリ/ 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);
}
}
リソース/ LANG/EN /検証。 PHP
'attributes' => [
'POLICY.HOLDER.NAME' => 'Some custom string here...',
],
私が見てきたように、カスタム検証アトリビュート配列に入力名を追加することはできませんでしたss。入力を空白のままにしたときに表示されるエラーメッセージは次のとおりです。
保有者。 n分野が必要です。
スペースに注意してください。私もそれを試した、それは動作しませんでした。
あなたがこれまでに試した何のためのコードを追加することはできますか?例えば。コントローラ、ビュー、検証コード –
@JamesFlightコードを追加しました –
ここにあるPHPチャットルームの人々は、大文字の入力名のためにラベールバグかもしれないと言っています。小文字に変更すると、もはやそれらのスペースが置かれなくなり、プレースホルダが機能します。残念ながら、私は大文字でモデルの属性とDBの列を持っている必要があります...コマンドのチェーンの上から来て、私はこれで言うことがありません:)) –