2016-10-15 5 views
1

FormDataのjavascriptオブジェクトを使ってAxiosライブラリを送信しようとしています。ブール値のフィールド(is_active)が存在するため、 FormDataオブジェクトは文字列に変換しています!FormDataでブール値を送信するJavascript - Vuejs + Laravel app

私はFormDataなしでそれを作ろうとしましたが、それは完全に行く!

どのような体でも動作させるには最良の方法がわかりますか?実際には私のLaravel Requestで現場を修正するために本当に悪い仕事をしました...私はそれが最良のアイデアだとは思いませんが、今のところうまくいきます!

誰にでも良い解決策がありますか?

私の現在の作業コードはありますが、より良いものにしたいと思います!

私のコントローラと私の要求:

PS:私は、IFが$ルールにブール問題を修正するために機能することを行っている...私はそれを文字列として手放す場合、私は私のデータベースどこに問題があるでしょうフィールドはブールでなければならず、

class PostRequest extends FormRequest 
{ 
    public function rules() 
    { 
     if (in_array($this->get('active'), ['true', 'false'])) { 
      $this->offsetSet('active', $this->get('active') == 'true'); 
     } 

     $rules = [ 
      'title'    => 'required|string', 
      'slug'    => 'required|alpha_dash|unique:posts,slug', 
      'photo'    => 'required|image', 
      'publish_date'  => 'required|date_format:d/m/Y', 
      'summary'   => 'required', 
      'content'   => 'required', 
      'author_id'   => 'required|exists:authors,id', 
      'category_id'  => 'required|exists:categories,id,flag,posts', 
//   'active'   => 'boolean', 
     ]; 

     return $rules; 
    } 
} 

class PostsController { 
    public function store(PostRequest $request) 
    { 
     try { 
      $model = new Post($request->all()); 
      $model = $model->save(); 
     } catch (\Exception $e) { 
      return response()->json($e->getMessage(), 422); 
     } 
     return $model; 
    }  
} 

今、私のjavascriptのコードがあり、私もその場に自分のブールの検証を削除する必要がありました

PS:私のcreatePostが要求

let data = new FormData() 
let record = _.cloneDeep(this.record) 

for (var key in record) { 
    if (record[key] === 'true' || record[key] === 'false') 
    data.append(key, record[key] === 'true') 
    else 
    data.append(key, record[key]) 
} 

return _.isNil(this.record.id) ? createPost(data) : updatePost(data.id, data) 

答えて

0

あなたがいるFormDataを通じてブールを送信傾けるよういるFormDataのみ、文字列やバッファのフォーマットで送信することが可能になり、私のaxiosクライアントを誘発するので、私はサービスで働いています。真にブール値だけが必要な場合は、サーバー側でブール値に変換してください。上記のコード

ための基準 from this stackoverflow answer
$boolValue = ($stringToTest === 'true'); 

PHPのbooleanする文字列を変換する

関連する問題