我是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" }
在您的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
应该是varchar
或text
。
您必须在路由器中创建一个控制器并添加代码以初始化路由
控制器:
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>