在Laravel中将表单数据存储为mysql,作为JSON

问题描述 投票:0回答:2

我是laravel的新手,我想知道如何将我的表单输入作为JSON格式存储到mysql数据库中。

基本上我想知道从Blade模板到数据库的完整流程来存储JSON。

样品表格:

<div class="container">
  <form action="action_page.php">

    <label for="fname">First Name</label>
    <input type="text" id="fname" name="firstname" placeholder="First Name">

    <label for="lname">Last Name</label>
    <input type="text" id="lname" name="lastname" placeholder="Last Name">

    <label for="subject">Subject</label>
    <textarea id="subject" name="subject" placeholder="Subject" style="height:300px"></textarea>

    <input type="submit" value="Submit">

  </form>
</div>

我想要存储在数据库中的示例JSON

{ "firstname":"John", "lastname":"Immanuel",  "subject":"This is a test msg" }
php laravel
2个回答
1
投票

在您的controller方法中,使用以下代码:

use Illuminate\Http\Request;

public function store(){
     //Get the request data
     $input = Request::all(); 

     //Store into your table using Laravel model you've created
     $record = Model::create(["your_field_name" => json_encode($input)]); 

     return $record; 
}

请确保,您要存储json的字段的datatype应该是varchartext


1
投票

您必须在路由器中创建一个控制器并添加代码以初始化路由

控制器:

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
public function store(Request $request)
{
     $variable = DB::table('table_name')->insert([
            ['firstname' => $request->firstname, 'lastname' => $request->lastname, 'subject' => $request->subject]
     ]);
     return $variable;
}

路由器:(在web.php中添加代码)

Route::post('/add', 'YourController@store');

视图:

<div class="container">
<form action="/add" method="POST">
{{ csrf_field() }}
    <label for="fname">First Name</label>
    <input type="text" id="fname" name="firstname" placeholder="First Name">

    <label for="lname">Last Name</label>
    <input type="text" id="lname" name="lastname" placeholder="Last Name">

    <label for="subject">Subject</label>
    <textarea id="subject" name="subject" placeholder="Subject" style="height:300px"></textarea>

    <input type="submit" value="Submit">

  </form>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.