2017-10-31 16 views
2
/** 
* Store a newly created resource in storage. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
public function store(Request $request) { 
    $rules = [ 
     'translations'     => 'required|array', 
     'translations.*.language_code' => 'required|exists:app_languages,code', 
     'translations.*.name'   => 'required' 
    ]; 

    $this->validate($request, $rules); 

    dd("OK"); 
} 

私はそれをテストするためにPostManを使用しています。配列の2番目のパラメータはすべて正常です。しかし、名前0のインデックスまたは配列は受け付けません。 laravel検証ルールは配列の最初のインデックスを受け付けません

enter image description here

私は最初のインデックスを送信しませんでした

enter image description here

UPDATEは

それは郵便配達のバグです。私は同じパラメータを追加して置き換え、それは動作します。

enter image description here

+0

アレイはマルチアレイまたはシングルアレイですか? – Mohammad

+0

配列はオブジェクト配列です。多次元であるが第2の層はオブジェクトである。 – Nevermore

+0

'' translations.0.name '=>' required''を追加してみてください – madalinivascu

答えて

0

郵便配達員の不具合です。私は同じパラメータを追加して置き換え、それは動作します。

私は知らないのですが、なぜそれが受け入れられなかったのか、そしてそれは笑を受け入れます。

+0

インデックスを削除しようとすると 'translations [] [name]' – madalinivascu

0

私はこれがあなたを助けだと思います。

$rules = []; 
if($request->has('translations')) 
{ 
    $translations = $request->input('translations'); 
    foreach($translations as $key => $value) 
    { 
     $rules["translations.$key.$value"] = 'required'; 
    } 
} 
関連する問題