首页 > 解决方案 > 如何将表单输入保存到 json 数据中并保存到 1 个字段表中

问题描述

我有像这样的单选按钮的表单输入`

 <form class="form-group" action="/user" method="post">
  <table class="table table-striped">
    <tbody><tr>
      <th style="width: 10px">#</th>
      <th>Pertanyaan</th>
      <th style="width: 60px">Tidak Baik</th>
      <th style="width: 60px">Baik</th>
    </tr>
    <tr>
      <td>1.</td>
      <td><input style="border:none" type="text" name="text1" value="Periksa kondisi kelistrikan dan kabel ,pastikan tidak ada yang terkelupas"></td>

      <td>
          <label><input type="radio"  name="input1" value="false" checked></label>
      </td>
      <td>
          <label><input type="radio"  name="input1" value="true"></label>
      </td>
    </tr>
    <tr>
      <td>2.</td>
      <td><input style="border:none" type="text" name="text2" value="Periksa kondisi kabel dan tempat sambungan"></td>

          <td>
              <label><input type="radio"  name="input2"  value="false" checked></label>
          </td>
          <td>
              <label><input type="radio"  name="input2" value="true"></label>
          </td>
    </tr>
    <tr>
      <td>3.</td>
      <td><input style="border:none" type="text" name="text3" value="Periksa kondisi pencetakan (tinta dan kertas printer)"> </td>
      <td>
          <label><input type="radio"  name="input3"  value="false"  checked></label>
      </td>
      <td>
          <label><input type="radio"  name="input3" value="true"></label>
      </td>
    </tr>
    <tr>
      <td>4.</td>
      <td> <input style="border:none" type="text" name="text4" value="Fix and squish bugs"> </td>
      <td>
          <label><input type="radio"  name="input4"  value="false" checked></label>
      </td>
      <td>
          <label><input type="radio"  name="input4" value="true"></label>
      </td>
    </tr>

    <input type="hidden" name="alat_id" value="1">        
    <input type="hidden" name="_token" value="{{ csrf_token() }}">

  </tbody>

</table>
      <div class="box-footer">
        <button type="submit" class="btn btn-primary" name="name" value="post">Submit</button>
       </div>
</form>

从这个输入我得到了结果(不小心出错了)

环境及细节:

GET Data empty
POST Data
question1   
"Periksa kondisi kelistrikan dan kabel ,pastikan tidak ada yang terkelupas"
answer1 
"false"
question2   
"Periksa kondisi kabel dan tempat sambungan"
answer2 
"false"
question3   
"Periksa kondisi pencetakan (tinta dan kertas printer)"
answer3 
"false"
question4   
"Fix and squish bugs"
answer4 
"false"
alat_id 
"1"
_token  
"buno7LyZ9PLaq3ByKpDYlNz0TuaagV8HPbhqznT8"
name    
"post"

我想在 DB 的“Pemeliharaan”表的“Pertanyaan”列中输入这个。

我想像这样添加这个字段表:

{ "question 1":"true", "question 2":"false", 
  "question 3":"true", "question 4":"false",
  "question 5":"true" }

我想这样保存,因为我想把它变成 json data 。

我的控制器:

public function store(Request $request)
{
    $user = new pemeliharaa;
    $id = Auth::user()->id;

    $user->user_id = $id;
    $user->alat_id = $request->alat_id;
    $user->pertanyaan ="";/in here i dont know what i do
    $user->catatan = "empty";
    $user->status = "week";


    $user->save();
    dd($user);

}

有人能帮我吗 ?

标签: arraysjsonlaravel

解决方案


只需使用 json_encode()

public function store(Request $request)
{
    $user = new pemeliharaa;
    $id = Auth::user()->id;

    $user->user_id = $id;
    $user->alat_id = $request->alat_id;
    $user->pertanyaan = json_encode($request->except(['_token']));
    $user->catatan = "empty";
    $user->status = "week";


    $user->save();
    dd($user);

}
$request->only(['question', 'answer']);


推荐阅读